Ich habe Vista
Plugin-Installation?
-
- [ offen ]
-
MatthiasG. -
10. April 2009 um 08:51 -
Geschlossen -
Erledigt
-
-
So sollte es einwandfrei arbeiten:
Spoiler anzeigen
[autoit]#include<GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<File.au3>Global $oMyRet[2]
[/autoit] [autoit][/autoit] [autoit]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Email versender", 396, 294)
$Input1 = GUICtrlCreateInput("", 8, 40, 121, 21)
$Input2 = GUICtrlCreateInput("", 248, 40, 121, 21)
$Label1 = GUICtrlCreateLabel("Mail sever: Für http://www.web.de ist er smtp.web.de ", 8, 16, 229, 17)
$Label2 = GUICtrlCreateLabel("Name des Absenders", 248, 16, 105, 17)
$Label3 = GUICtrlCreateLabel("Absender email addresse", 8, 72, 122, 17)
$Input3 = GUICtrlCreateInput("", 8, 96, 121, 21)
$Input4 = GUICtrlCreateInput("", 248, 96, 121, 21)
$Label4 = GUICtrlCreateLabel("Empfänger email addresse", 248, 72, 128, 17)
$Input5 = GUICtrlCreateInput("", 8, 152, 121, 21)
$Label5 = GUICtrlCreateLabel("Betreff", 8, 128, 35, 17)
$Label6 = GUICtrlCreateLabel(" Text ", 248, 128, 34, 17)
$Input6 = GUICtrlCreateInput("", 248, 152, 121, 21)
$Label7 = GUICtrlCreateLabel("Nochmal Absender email", 8, 184, 121, 17)
$Input7 = GUICtrlCreateInput("", 8, 208, 121, 21)
$Input8 = GUICtrlCreateInput("", 248, 208, 121, 21)
$Label8 = GUICtrlCreateLabel("Passwort der Absender email", 248, 184, 140, 17)
$Button1 = GUICtrlCreateButton("Email versenden", 152, 248, 100, 25, 0)
$Button2 = GUICtrlCreateButton("Abbrechen", 312, 256, 75, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$rc = _INetSmtpMailCom(GUICtrlRead( $Input1),GUICtrlRead($Input2),GUICtrlRead($Input3), GUICtrlRead($Input4), GUICtrlRead($Input5), GUICtrlRead($Input6), "", "","", GUICtrlRead($Input7), GUICtrlRead($Input8))
If @error then
msgbox(0,"Error sending message","Error code:" & @error & " Description:" & $rc)
EndIf
Case $Button2
Exit
EndSwitch
WEnd
[/autoit]
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "")
$objEmail = ObjCreate("CDO.Message")
$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress
Local $i_Error = 0
Local $i_Error_desciption = ""
If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Cc = $s_BccAddress
$objEmail.Subject = $s_Subject
If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_Body & @CRLF
EndIf
If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $x = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
$i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
SetError(1)
return 0
EndIf
Next
EndIf
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
;Authenticated SMTP
If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf
;Update settings
$objEmail.Configuration.Fields.Update
; Sent the Message
$objEmail.Send
if @error then
SetError(2)
return $oMyRet[1]
EndIf
EndFunc;==>_INetSmtpMailCom
;
;
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number,
$oMyRet[0] = $HexNumber
$oMyRet[1] = StringStripWS($oMyError.description,3)
ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
SetError(1); something to check for when this function returns
Return
EndFunc;==>MyErrFuncZeile 64 & 65 geändert.
Zeile 64 war zuvor: For $ex = 1 To $S_Files2Attach[0]
Zeile 65 nur eine Leerstelle entfernt, was aber meine ich nicht so wichtig war. -
Danke Alina jetzt müsste es eigentlich bei jedem funktionieren
-
@simon
Ich habe doch nur die Fehlermeldung die ausgegeben ist versucht zu verstehen. Der Versuch war erfolgreich und das habe ich auch erst nach Wochwen gelernt. Ab und an ist das auch sehr zeitaufwendig. Immer dann, wenn das Script sehr groß ist und nicht dokumentiert ist, bekommt man ab und an den "verlorenen Überblick" gratis. -
Das _INETSMTPCOM habe ich ja auch nicht gemacht sondern das hat mir im Forum jemand gegeben
-
@simon
1.)
Ich habe auch die Anzahl der Include-Dateien auf zwei reduziert. Alle anderen warer überflüssig.2.)
Wenn Du das _INETSMTPCOM aus dem Forum hast, schaust Du es nicht durch was es macht???
Also ich mache das zumeist, denn ich möchte es verstehen und daraus lernen.Überflüssig auch so ein deutsches Wort, das nicht in den Ordner "sinnvoll" kommt. Etwas ist über flüssig? Mehr als flüssig gibt es doch gar nicht. SPASS
-
Das Meiste schon aber hierbei kapiere ich fast nix
Grund:
ka von Local
ka von [..] -
Local kannst Du in der Hilfe nachlesen
*******************************************************************************************************
was $x = 1 To Y bedeutet ganz einfach gesagt, das der Zähler-$x von 1 bis Y zählt.
Ist Y 60, dann zählt der Zähler von 1 bis 60.For $x = 1 To $S_Files2Attach[0]
Hier zählt der Zähler-$x von 1 bis zum max. von $S_Files2Attach[0]Aber auch hier etwas die Hilfe durch gehen. Ich selber kann das schlecht erklären, aber
vom Sinn her sollte es so verständlich rüber kommen. -
Die Alina als Erklärbär (chen)
MfG
Der_Doc -
Ok danke also alles mit [....] ist ein zähler
-
Hi
den du das meinst $variable[1] ist das kein Zähler sonder ein Array, um genauzusein der 2. Eintrag in einem Arry. Array fangen immer mit [0] an.
Mit einer For-Schleife kannst du jeden Wert des Array bequem auslesen.MfG
Der_Doc -
So, danke an alle, jetzt funktionierts auch bei mir
Aber warum muss ich zweimal die E-Mail angeben @simon
-
Ka warum ich hab deshalb meines also mein e-mail programmm auf folgendes umgebaut
Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>Global $oMyRet[2]
[/autoit] [autoit][/autoit] [autoit]
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Email versender", 406, 304)
GUISetBkColor(0xCDAD00)$1= GUICtrlCreateMenu("Mail Server")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$fileitem = GUICtrlCreateMenuItem("Server festlegen", $1)
$fileitem2 = GUICtrlCreateMenuitem("Absender mail festlegen",$1)
$fileitem3= GUICtrlCreateMenuitem("Passwort eingeben",$1)
$fileitem4 = GUICtrlCreateMenuitem("Name festlegen",$1)$Label4 = GUICtrlCreateLabel("Empfänger email addresse", 8, 20, 140, 17)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Input4 = GUICtrlCreateInput("", 8, 40, 390, 21)$Label5 = GUICtrlCreateLabel("Betreff", 8, 70, 35, 17)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Input5 = GUICtrlCreateInput("", 8,90, 390, 21)$Label6 = GUICtrlCreateLabel(" Text ",8, 120, 34, 17)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Input6 = GUICtrlCreateEdit("",8, 140,390, 115,BitOr($ES_WANTRETURN, $WS_VSCROLL,$ES_AUTOVSCROLL, $ES_AUTOHSCROLL))$Button1 = GUICtrlCreateButton("Email versenden", 152, 256, 100, 25, 0)
[/autoit] [autoit][/autoit] [autoit]
$Button2 = GUICtrlCreateButton("Abbrechen", 312, 256, 75, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
If Not FileExists ( "cfg.ini" ) Then
MsgBox ( 0, "cfg fehlt", "Config erst anlegen bitte" )
Else
$server=IniRead ( "cfg.ini", "sachen", "daten", "nicht gefunden" )
$absender=IniRead("cfg.ini","absender","absender","nicht gefunden")
$passwort=IniRead("cfg.ini","passwort","passwort","nicht gefunden")
$name=IniRead("cfg.ini","name","name","nicht gefunden")
EndIf
$rc = _INetSmtpMailCom($server,$name,$absender, GUICtrlRead($Input4), GUICtrlRead($Input5), GUICtrlRead($Input6), "", "","",$absender,$passwort)
If @error then
msgbox(0,"Error sending message","Error code:" & @error & " Description:" & $rc)
EndIf
Case $Button2
Exit
Case $fileitem
_ServerAbfragen()
Case $fileitem2
_AbsenderAbfrage()
Case $fileitem3
_PasswortAbfrage()
Case $fileitem4
_NameAbfrage()
EndSwitch
WEnd
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "")
$objEmail = ObjCreate("CDO.Message")
$objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
$objEmail.To = $s_ToAddress
Local $i_Error = 0
Local $i_Error_desciption = ""
If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
If $s_BccAddress <> "" Then $objEmail.Cc = $s_BccAddress
$objEmail.Subject = $s_Subject
If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
$objEmail.HTMLBody = $as_Body
Else
$objEmail.Textbody = $as_Body & @CRLF
EndIf
If $s_AttachFiles <> "" Then
Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
For $ex = 1 To $S_Files2Attach[0]
$S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
If FileExists($S_Files2Attach[$x]) Then
$objEmail.AddAttachment ($S_Files2Attach[$x])
Else
$i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
SetError(1)
return 0
EndIf
Next
EndIf
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
;Authenticated SMTP
If $s_Username <> "" Then
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
$objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
EndIf
;Update settings
$objEmail.Configuration.Fields.Update
; Sent the Message
$objEmail.Send
if @error then
SetError(2)
return $oMyRet[1]
EndIf
EndFunc;==>_INetSmtpMailCom
;
;
; Com Error Handler
Func MyErrFunc()
$HexNumber = Hex($oMyError.number,
$oMyRet[0] = $HexNumber
$oMyRet[1] = StringStripWS($oMyError.description,3)
ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
SetError(1); something to check for when this function returns
Return
EndFunc;==>MyErrFuncFunc _ServerAbfragen()
[/autoit] [autoit][/autoit] [autoit]
$gui=GUICreate("Server",200,110, -1, -1)
GUICtrlCreateLabel("Hier musst du deinen E-Mail server eingeben:",10,10,180,30)
$ServerE=GUICtrlCreateInput("",10,50,170,20)
$save=GUICtrlCreateButton("Server Speichern",10,80,170)
GUISetState ()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$returnServer=GUICtrlRead ( $ServerE )
IniWriteSection ( "cfg.ini", "sachen", "daten="&$returnServer )
GUIDelete ( $gui )
ExitLoop
EndSwitch
WEnd
EndFuncFunc _AbsenderAbfrage()
[/autoit] [autoit][/autoit] [autoit]
$gui=GUICreate("Server",200,110, -1, -1)
GUICtrlCreateLabel("Hier musst du deinen E-Mail (Absender E-Mail) eingeben:",10,10,180,30)
$AbsenderE=GUICtrlCreateInput("",10,50,170,20)
$save=GUICtrlCreateButton("Absender Speichern",10,80,170)
GUISetState ()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$returnAbsender=GUICtrlRead ( $AbsenderE )
IniWriteSection ( "cfg.ini", "absender", "absender="&$returnAbsender )
GUIDelete ( $gui )
ExitLoop
EndSwitch
WEnd
EndFuncFunc _PasswortAbfrage()
[/autoit] [autoit][/autoit] [autoit]
$gui=GUICreate("Passwort",200,110, -1, -1)
GUICtrlCreateLabel("Hier musst du deinen E-Mail Server Passwort eingeben eingeben:",10,10,180,30)
$PasswortE=GUICtrlCreateInput("",10,50,170,20)
$save=GUICtrlCreateButton("Passwort Speichern",10,80,170)
GUISetState ()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$returnPasswort=GUICtrlRead ( $PasswortE )
IniWriteSection ( "cfg.ini", "passwort", "passwort="&$returnPasswort )
GUIDelete ( $gui )
ExitLoop
EndSwitch
WEnd
EndFuncFunc _NameAbfrage()
[/autoit]
$gui=GUICreate("Name",200,110, -1, -1)
GUICtrlCreateLabel("Hier musst du deinen Name eingeben eingeben:",10,10,180,30)
$NameE=GUICtrlCreateInput("",10,50,170,20)
$save=GUICtrlCreateButton("Name Speichern",10,80,170)
GUISetState ()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $save
$returnName=GUICtrlRead ( $NameE )
IniWriteSection ( "cfg.ini", "Name", "name="&$returnName )
GUIDelete ( $gui )
ExitLoop
EndSwitch
WEnd
EndFuncgeht jetzt per ini musst aber erst alles abspeichern
-
Ja ber warum nimmst du nicht zwei mal den gleichen String?
-
stimmt eigentlich wenn de willst kanst du es dir ja umbauen
bitte nicht jeder!!! -
Gut! Ich mach es dann so ähnlich.. Aber wahrscheinlich benutze ich zusätzlich noch das hier:
http://www.autoitscript.com/forum/index.php?showtopic=22838&hl=POP3+Mail -
Aha für was benutzt du dan das mit pop up geht pop up nicht mit dem von mir???
-
Pop ist für den Posteingang verantwortlich...
-
Das heist du willst auch e-mails empfangen in dem programm nicht nur versenden, oder?
-
Ja klar! Es soll ein komplettes E-Mail-Programm werden, möglichst mit eingebautem IE-Browser (oder FF, wenn Stilgar mir hilft )
-