E-mail mit Anhang über Yahoo geht nicht.

  • Hallo,
    irgendwie will das mail skript meine Mail mit anhang nicht verschicken und zwar liegt es wohl am anhang:
    Folgende Fehlerzeilen:
    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Dokumente und Einstellungen\Juli963\Desktop\mail.au3"
    @@ Debug(62) : $S_Files2Attach =
    >Error code: 0
    C:\Dokumente und Einstellungen\Juli963\Desktop\mail.au3 (705) : ==> The requested action with this object has failed.:
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    $objEmail.AddAttachment ($S_Files2Attach[$x])^ ERROR
    >Exit code: 1 Time: 40.040


    [autoit]

    $std = 16
    $min = 55
    $sek = 0
    While 1
    Sleep(50)
    If $std = @HOUR And $min = @MIN And $sek = @SEC Then
    _INetSmtpMailCom ( "smtp.mail.yahoo.com", "DailyFile", "****", "********", "Täglicher Test", "Die Tägliche Testdatei", "C://log.html", "", "", "Normal", "******", "******", 25, 0)
    Exit
    EndIf
    WEnd

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

    #Include<file.au3>
    ;##################################
    ; Variables
    ;##################################
    $SmtpServer = "smtp.mail.yahoo.com" ; address for the smtp-server to use - REQUIRED
    $FromName = "Dateimail" ; name from who the email was sent
    $FromAddress = "*******" ; address from where the mail should come
    $ToAddress = "******" ; destination address of the email - REQUIRED
    $Subject = "Dateimailtest" ; subject from the email - can be anything you want it to be
    $Body = "wieder ne Test dateimail" ; the messagebody from the mail - can be left blank but then you get a blank mail
    $AttachFiles = "C://log.html" ; the file you want to attach- leave blank if not needed
    $CcAddress = "" ; address for cc - leave blank if not needed
    $BccAddress = "" ; address for bcc - leave blank if not needed
    $Importance = "Normal" ; Send message priority: "High", "Normal", "Low"
    $Username = "*****" ; username for the account used from where the mail gets sent - REQUIRED
    $Password = "*****" ; password for the account used from where the mail gets sent - REQUIRED
    $IPPort = 25 ; port used for sending the mail
    $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS
    ;~ $IPPort=465 ; GMAIL port used for sending the mail
    ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS

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

    ;##################################
    ; Script
    ;##################################
    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
    ;
    ; The UDF
    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
    ;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
    If $ssl Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Set Email Importance
    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
    ; Sent the Message
    $objEmail.Send
    If @error Then
    SetError(2)
    Return $oMyRet[1]
    EndIf
    $objEmail=""
    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]


    bin noch ziemlicher noob in autoit aber ich weiß net warum der das net verschickt.

    MFG

  • also ohne Anhang funktioniert es
    aber wenn ich

    [autoit]

    "C:\log.html"

    [/autoit]


    eingebe gehts wieder nicht

  • also existieren tut sie wenn ich z.B. den Pfad falsch angebe o.ä. dann gibt es auch die Fehlermeldung das sie nicht existiert.
    mit einen andere acoount werde ich es mal gleich probieren.
    MFG

  • also ich habs mal mit nen anderen anhang versucht siehe da sie kommt an trotzdem eine fehlermeldung und skript beendet.
    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Dokumente und Einstellungen\Juli963\Desktop\mail.au3"
    @@ Debug(62) : $S_Files2Attach =
    >Error code: 0

    so ich glaub ich habs bei mir lags an der Dateiendung nenne ich die datei in log.txt um dann gehts

    Einmal editiert, zuletzt von juli963 (21. August 2010 um 18:01)