Ok, wenigstens hat es funktioniert. Hast du auf der Webseite geprüft, das die Mail auch ankam?
Im Body findest du dann deine Eingabe. GUICtrlRead($Input1)
Woher deine Fehlermeldung immer kommt, frage ich mich aber schon..
Naja, schönen Abend noch
Ok, wenigstens hat es funktioniert. Hast du auf der Webseite geprüft, das die Mail auch ankam?
Im Body findest du dann deine Eingabe. GUICtrlRead($Input1)
Woher deine Fehlermeldung immer kommt, frage ich mich aber schon..
Naja, schönen Abend noch
Danke vielmals für deine stundenlange Bemühung
mit ok.de läuft es hervorragend.
bei web.de sieht es hingegen schlecht aus
benutze folgende Einstellungen für Web.de:
$SmtpServer = "smtp.web.de"
$IPPort = 587
$ssl = 0
Mich wundert es grad warum ok die server von web verwendet.
@alpines
Die ok Adresse und Daten hatte er aus dem Beitrag hier: Problem | Inhalt der Inpubox per E-Mail versenden
Zu den web.de Daten kann ich jetzt nichts sagen.(Ist mir auch eigentlich egal )
mit ok.de läuft es hervorragend.
$SmtpServer = "smtp.web.de"
Eine Frage habe ich nun doch noch
wie sieht das ganze bei 2 Inputboxen aus?
#include <GUIConstantsEx.au3>
#include <_INetSmtpMailCom.au3>
$Form1 = GUICreate("E-Mail senden", 301, 161, 191, 123)
$Input1 = GUICtrlCreateInput("Text1", 8, 8, 273, 21)
$Input2 = GUICtrlCreateInput("Text2", 8, 58, 273, 21)
$Button1 = GUICtrlCreateButton("Senden!", 56, 128, 171, 25)
GUISetState(@SW_SHOW)
$SmtpServer = "mail.ok.de"
$FromName = "Email"
$FromAddress = "xxx@ok.de"
$ToAddress = "xxx@ok.de"
$Subject = "Betreff Test"
$username = "xxxx@ok.de"
$Password = "xxx"
$IPPort = 587
$ssl = 1
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Body = GUICtrlRead($Input1)
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $username, $Password, $IPPort, $ssl)
If @error Then
MsgBox(0, "", "Fehler")
Else
MsgBox(0, "", "OK")
EndIf
EndSwitch
WEnd
Alles anzeigen
Guten Abend Arah,
das hängt auch davon ab, als was du die Inputboxen verwendest. Du musst dich da wirklich ausführlicher und klarer mitteilen.
Nochmal zu dem Befehl GUICtrlRead($Input1), den du übernommen hast. Geh mal in die Mitte des Wortes in SciTE und drücke F1. Dann öffnet sich die Hilfe zu genau diesem Befehl. Ich glaube du hast das noch nie gemacht, kann das sein?
Jedenfalls wird dieser Befehl ja gerade mit $Body verwendet. Natürlich könnte man der Variablen beliebige Namen geben, aber es dient der Verständlichkeit, dass sie genau diesen Namen trägt. Body ist nämlich der Textkörper, bzw. die eigentliche Nachricht einer Mail.
$Subject ist der Betreff. Wenn du also eine Inputbox für den Betreff verwenden möchtest, dann musst du hier nur den Befehl von eben verwenden GUICtrlRead() und die zweite Inputbox auslesen. In dem Fall eben GUICtrlRead($Input2) und mit damit $Subject füllen, also $Subject = GUICtrlRead($Input2)
Wenn du willst, das beide Texte im Body stehen, dann kannst du sie einfach verknüpfen. Das geht in Autoit per &. Wenn du der Übersichtlichkeit halber auch noch Absätze haben möchtest, dann kannst du das Makro dafür verwenden, das lautet @CRLF.
Dann könnte dein String etwa so mit zwei Absätzen getrennt aussehen: GUICtrlRead($Input1) & @CRLF & @CRLF & GUICtrlRead($Input2)
Ich habe hier einige Stichworte genannt, die du mal nachverfolgen solltest. Sei nicht böse, wenn du meinst, du weißt das alles ja bereits und wirst unterschätzt. Wir kennen uns ja nicht. Außerdem führt vor allem Wiederholung zur Meisterschaft.
EDIT: Text korrigiert und klarer formuliert (hoffentlich )
Genau so habe ich es mir vorgestellt, danke!
kennst du noch irgend eine möglichkeit alle Fehlermeldungen (MsgBox) auszublenden / zu deaktivieren? Denn jedes mal wenn ich mein Script starte bekomme ich den Error Code:2
habe es schon mit einen einfachen "send ("{Space}")" Befehl versucht, der wollte aber nicht ganz so funktionieren...
Sorry, es gibt hier viel hellere Lichter als mich.
Ich frage mich immer noch, woher die Meldung bei dir kommt.
Verwendest du wirklich nur dieses Sktipt, oder ein größeres? Dann solltest du es posten, oder wenigstens erwähnen.
Vielleicht hilft eine andere Autoit-Version?
Ich versteige mich jetzt aber, weil ich keine Ahnung habe. Bei mir kommen jedenfalls keine Meldungen.
Mein allgemeiner Rat lautet: Schau dir was ab, aber versuche das Skript selbst aufzubauen, damit du wirklich verstehst, was da passiert..
Selbst wenn ich den 1:1 kopierten Quellcode ausführe erhalte ich diesen Fehler (auf mehreren Systemen getestet)
Hi,
bissl spät, aber besser als nie
Sowas hab ich mir mal für die Firma hier intern gebaut, hat wunderbar funktioniert:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Gui = GUICreate("Send E-Mail", 576, 494, 192, 114, -1, $WS_EX_ACCEPTFILES )
$Label1 = GUICtrlCreateLabel("Von:", 16, 16, 26, 17)
$von = GUICtrlCreateInput(StringReplace(@UserName,"_",".") & "@blubb.com", 48, 8, 433, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$an = GUICtrlCreateInput(StringReplace(@UserName,"_",".") & "@blubb.com", 48, 32, 433, 21)
$Label2 = GUICtrlCreateLabel("An:", 16, 40, 20, 17)
$sub = GUICtrlCreateInput("", 48, 136, 513, 21)
$Label3 = GUICtrlCreateLabel("Betreff:", 8, 144, 38, 17)
$Label4 = GUICtrlCreateLabel("Text:", 8, 208, 28, 17)
$text = GUICtrlCreateEdit("", 48, 208, 513, 273)
$send = GUICtrlCreateButton("Senden", 488, 8, 75, 45, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DISABLE)
$clear = GUICtrlCreateButton("Löschen", 488, 72, 75, 45, $WS_GROUP)
$Label5 = GUICtrlCreateLabel("CC:", 16, 80, 21, 17)
$Label6 = GUICtrlCreateLabel("BCC:", 16, 104, 28, 17)
$cc = GUICtrlCreateInput("", 48, 72, 433, 21)
$bcc = GUICtrlCreateInput("", 48, 96, 433, 21)
$Label7 = GUICtrlCreateLabel("Anhang:", 0, 184, 44, 17)
$anhang = GUICtrlCreateInput("", 48, 176, 513, 21)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState(@SW_SHOW)
dim $mail, $blubb = 1
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $send
GUICtrlSetState($send,$GUI_DISABLE)
sendit()
Case $clear
GUICtrlSetState($send,$GUI_DISABLE)
GUICtrlSetData($an,"")
;GUICtrlSetData($von,"")
GUICtrlSetData($cc,"")
GUICtrlSetData($bcc,"")
GUICtrlSetData($sub,"")
GUICtrlSetData($text,"")
$blubb = 1
EndSwitch
if GUICtrlRead($an) <> "" and GUICtrlRead($von) <> "" and $blubb = 1 Then
GUICtrlSetState($send,$GUI_ENABLE)
$blubb = 0
EndIf
WEnd
func sendit()
[/autoit] [autoit][/autoit] [autoit]$mail = ObjCreate("CDO.Message")
[/autoit] [autoit][/autoit] [autoit]With $mail
[/autoit] [autoit][/autoit] [autoit]$mail.From = GUICtrlRead($von)
$mail.To = GUICtrlRead($an)
$mail.Subject = GUICtrlRead($sub)
$asdf = GUICtrlRead($text)
[/autoit] [autoit][/autoit] [autoit]$mail.HTMLBody = $asdf
[/autoit] [autoit][/autoit] [autoit];if GUICtrlRead($anhang) <> "" Then $mail.AddAttachment = GUICtrlRead($anhang)
[/autoit] [autoit][/autoit] [autoit]$mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
$mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.10.232"
$mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
$mail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0
$mail.Configuration.Fields.Update
[/autoit] [autoit][/autoit] [autoit]$mail.Send
[/autoit] [autoit][/autoit] [autoit]EndWith
[/autoit] [autoit][/autoit] [autoit]MsgBox(64,"Erfolg","Email gesendet.",1)
GUICtrlSetState($send,$GUI_ENABLE)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit]Damit konntest du sogar den "Absender" fälschen (nicht im Quelltext der Nachricht!)
Kannst du leider nicht, extrem viele Mailserver verbieten das mittlerweile.