E-Mail verschicken mit AutoIt?

  • So ich hab einen scripe gemacht.
    Der scripe soll das machen das die leute die hilfe brauchen einfach ihren text eingeben ihren namen und e-mail dann wird der text auf meine e-mail gesendet und ich kann denen dann helfen.
    Der sieht wie folgend aus:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Rawi.RAWI-03E5F68DC8\Desktop\Server Erstellung.kxf
    $Hilfe = GUICreate("Hilfe", 203, 290, 309, 206)
    $Dein = GUICtrlCreateLabel("Dein", 64, 16, 44, 17)
    $Name = GUICtrlCreateLabel("Name", 120, 16, 32, 17)
    $Adresse = GUICtrlCreateLabel("Adresse", 112, 80, 47, 17)
    $Deine = GUICtrlCreateLabel("Dein", 64, 144, 35, 17)
    $Email = GUICtrlCreateLabel("E-mail", 64, 80, 44, 17)
    $Nachricht = GUICtrlCreateLabel("Text", 103, 144, 32, 17)
    $DeinenNamenHierEingeben = GUICtrlCreateInput("DeinenNamenHierEingeben", 24, 40, 153, 21)
    $EmailAdresseHierEingeben = GUICtrlCreateInput("E-mailAdresseHierEingeben", 24, 104, 153, 21)
    $DeinTextHierEingeben = GUICtrlCreateInput("DeinTextHierEingeben", 24, 168, 153, 21)
    $Senden = GUICtrlCreateButton("Senden", 24, 216, 153, 57, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit]

    Nun soll es aber so sein, dass das was sie rein geschrieben haben an meine e-mail geschickt werden soll.
    Wie amch ich das? Kann mir einer das machen?

    Edit GtaSpider: Bitte ein Aussagekräftigeren Titel benutzen als "Hilfe! Habe eine Frage" :thumbdown:
    Habe es mal geändert

    2 Mal editiert, zuletzt von GtaSpider (23. Februar 2009 um 14:33)

  • :cursing:
    Bitte schreibe mal ordentlich :cursing:
    Schau mal in der Hilfe und gebe dort mal "mail" in die Suche ein.

    PS: 7 Minuten nach dem Start schon drängeln :cursing:

  • Vor allem:


    Wieviel willst Du denn bezahlen? ;)

    Wir helfen gern, aber wenn hier einer ankommt mit "Schreibt mir mal mein Script", dann führt das schnell dazu, dass man denjenigen einfach ignoriert.

    sry kann nit bezahlen aber wäre dir sehr dankbar da ich das projekt bis morgen fertig haben muss ich ich schon den ganzen tag es irgendwie versuche komm bitte machs doch umsonst.
    :love: :love: :love:
    MfG
    Ich :)

  • guck dir mal inet.au3 an

    die funktion _inetsmtpmail() sollte funktionieren, wie du das genau machst über lass ich dir

    Computers are like Airconditioning. They don´t work with open Windows.

  • jetzt sieht es so aus:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>
    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Rawi.RAWI-03E5F68DC8\Desktop\Server Erstellung.kxf
    $Hilfe = GUICreate("Hilfe", 203, 290, 309, 206)
    $Dein = GUICtrlCreateLabel("Dein", 64, 16, 44, 17)
    $Name = GUICtrlCreateLabel("Name", 120, 16, 32, 17)
    $Adresse = GUICtrlCreateLabel("Adresse", 112, 80, 47, 17)
    $Deine = GUICtrlCreateLabel("Dein", 64, 144, 35, 17)
    $Email = GUICtrlCreateLabel("E-mail", 64, 80, 44, 17)
    $Nachricht = GUICtrlCreateLabel("Text", 103, 144, 32, 17)
    $DeinenNamenHierEingeben = GUICtrlCreateInput("DeinenNamenHierEingeben", 24, 40, 153, 21)
    $EmailAdresseHierEingeben = GUICtrlCreateInput("E-mailAdresseHierEingeben", 24, 104, 153, 21)
    $DeinTextHierEingeben = GUICtrlCreateInput("DeinTextHierEingeben", 24, 168, 153, 21)
    $Senden = GUICtrlCreateButton("Senden", 24, 216, 153, 57, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $s_SmtpServer = "mail.xxx.de"
    $s_FromName = "My Name"
    $s_FromAddress = "From eMail Address"
    $s_ToAddress = "xxxxx@xxx.de"
    $s_Subject = "My Test UDF"
    Dim $as_Body[2]
    $as_Body[0] = "Testing the new email udf"
    $as_Body[1] = "Second Line"
    $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
    $err = @error
    If $Response = 1 Then
    MsgBox(0, "Success!", "Mail sent")
    Else
    MsgBox(0, "Error!", "Mail failed with error code " & $err)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    aber er sendet die nachricht immer noch nicht auf meine e-mail was mache ich falsch?

    Mit freundlichen Grüßen

    Rawi Kumar

  • So hab nochmal eine änderung gemacht:
    sieht jetzt wie folgend aus:

    [autoit]

    #include <INet.au3>
    #include <GUIConstants.au3>
    GUICreate ("E-Mail", 203, 290, 309, 206)
    GUISetState (@SW_SHOW)
    ; Labls
    GUICtrlcreatelabel ("Dein Name:",64, 16)
    GUICtrlcreatelabel ("E-mail Adresse:",64, 80)
    GUICtrlcreatelabel ("Deine Nachricht:",64, 144)
    GUICtrlCreateInput("Deinen Namen hier Eingeben", 10, 40, 180, 21)
    GUICtrlCreateInput("Deine E-mal Adresse hier Eingeben", 10, 104, 180, 21)
    GUICtrlCreateInput("Deine Nachricht hier Eingeben", 10, 168, 180, 21)
    ; Buttons
    $ok = GUICtrlCreateButton ("Senden", 24, 216, 153, 57, 0)
    ;$close = GUICtrlCreateButton ( "Schließen", 140, 260, 70)
    ; Eingabe Felder...
    $s_FromName = "******"
    $s_FromAddress = "********"
    $s_ToAddress = "********"
    $s_Subject = "betreff"
    Dim $as_Body[2]
    $as_Body[0] = "Erste Zeile"
    $as_Body[1] = "Zweite Zeile"
    ; ******* Mail
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $ok
    $s_SmtpServer = "********"
    $mail = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body)
    $err = @error
    If $mail = 1 Then
    MsgBox(0, "Mail!", "Die E-mail wurde erfolgreich versand an:" & $s_ToAddress)
    Else
    MsgBox(0, "Error!", "E-mail konnte nicht gesandt werden!" & $err)
    EndIf
    EndSelect
    Wend

    [/autoit]

    Ich habs paar mal ausprobiert jedes mal wenn ich auf Senden gehe kommt ein Fenster. Da steht "E-mail konnte nicht gesandt werden!3"
    1.Was mache ich falsch ?
    2.Wie kann ich es beheben?
    3.Könnte einer von euch mir das mal zeigen?

    Mit freundlichen Grüßen


    Rawi Kumar

  • Find die _INetSmtpMailCom Funktion besser, hier mal nen Script, wie sie Funktioniert.

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    AutoIt Version: 3.3.0.0
    Author: Greek

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Template AutoIt script.

    [/autoit] [autoit][/autoit] [autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    ; Script Start - Add your code below here

    [/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Email versender", 396, 294, 1153, 185)
    $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 ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $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] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [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 $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, 8)
    $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;==>MyErrFunc

    [/autoit]