problem mit e-mail senden

  • ich habe ein problem mit meinem email programm das ich erstellt habe

    immer wenn ich die daten eingegeben habe und af senden drücke steht da kein empfänger angegeben

    wo habe ichwas falsch gemacht?

    bitte um hilfe

    lg ophiel

    skript:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include<file.au3>
    Global $title = "E-Mail-GUI"

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

    $hwnd = GUICreate($title, 232, 170, 192, 124)
    $Input1 = GUICtrlCreateInput("Absender", 16, 16, 200, 21)
    $Input2 = GUICtrlCreateInput("Passwort", 16, 40, 200, 21)
    $Input3 = GUICtrlCreateInput("Empfänger", 16, 64, 200, 21)
    $Input4 = GUICtrlCreateInput("Betreff", 16, 88, 200, 21)
    $Input5 = GUICtrlCreateInput("Text", 16, 112, 200, 21)
    $Button1 = GUICtrlCreateButton("E-Mail Senden", 20, 140, 75, 25)
    $Button2 = GUICtrlCreateButton("Abbrechen", 100, 140, 75, 25)
    $Button3 = GUICtrlCreateButton("Hilfe", 190, 140, 35, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button2
    Exit
    Case $Button3
    MsgBox(0, "Hilfe", "[Absender] Bitte geben sie dort ihre E-mail Adresse an." & @CRLF & "[Passwort] Bitte geben sie dort das Passwort ihres E-mail Accounts ein." & @CRLF & "[Empfänger] Bitte geben sie dort die E-mail Adresse des Empfängers ein." & @CRLF & "[Betreff] Bitte geben sie dort den Betreff ihrer E-mail an." & @CRLF & "[Text] Bitte geben sie dort ihre gewünschte E-mail Nachricht ein.")
    Case $Button1
    $SmtpServer = "smtp.web.de"
    $FromName = $Input1
    $FromAddress = $Input1
    $ToAddress = $Input3
    $Subject = $Input4
    $Body = $Input5
    $AttachFiles = ""
    $CcAddress = ""
    $BccAddress = ""
    $Importance = "Normal"
    $Username = $Input1
    $Password = $Input2
    $IPPort = 25
    $ssl = 0

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
    If @error Then
    MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc)
    EndIf

    [/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_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
    Local $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.Bcc = $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])
    ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
    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
    If Number($IPPort) = 0 then $IPPort = 25
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort

    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
    If $ssl Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf

    $objEmail.Configuration.Fields.Update

    Switch $s_Importance
    Case "High"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
    Case "Normal"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
    Case "Low"
    $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
    EndSwitch
    $objEmail.Fields.Update

    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail=""
    EndFunc

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

    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)
    Return
    EndFunc
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von ophiel (18. Februar 2010 um 18:07)

  • [autoit]

    $FromName = $Input1

    [/autoit]

    Funktioniert sowas wirklich ?
    ich dachte das müsste

    [autoit]

    $FromName = GUICtrlRead($Input1)

    [/autoit]

    heißen.

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • du musst die inputs erst einlesen also so in der art:

    [url='http://translation.autoit.de/onlinehilfe/intro/lang_variables.htm']

    [autoit]

    $FromName =Guictrlread( $Input1)
    $FromAddress = Guictrlread$Input1)
    $ToAddress = Guictrlread($Input3)
    $Subject =Guictrlread( $Input4)
    $Body =Guictrlread( $Input5)
    $AttachFiles = ""
    $CcAddress = ""
    $BccAddress = ""
    $Importance = "Normal"
    $Username =Guictrlread( $Input1)
    $Password =Guictrlread( $Input2)

    [/autoit]