Hallo zusammen,
ich habe ein wenig mit dieser Funktion experimentiert, die an sich sehr gut funktioniert.
Spoiler anzeigen
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
SendEmail("sender@server.intern", "empfaenger@server.intern", "Testmail", "Hallo, das ist eine Testmail")
Func SendEmail($e_Sender, $e_Recipient, $e_Subject, $e_Text)
$objMessage = ObjCreate ("CDO.Message")
With $objMessage
.Subject = $e_Subject
.Sender = $e_Sender
.From = $e_Sender
.To = $e_Recipient
.TextBody = $e_Text
EndWith
With $objMessage.Configuration.Fields
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "w2k8.server.intern"
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "auth"
.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "pass"
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Update
EndWith
$objMessage.Send
Return
EndFunc
Func MyErrFunc()
$HexNumber=hex($oMyError.number,8)
Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.number is: " & @TAB & $HexNumber & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF _
)
SetError(1)
Endfunc
Nur die Fehlerrückgabe passt nicht immer. Wenn man z.B. bei der SMTP Authentifizierung einen falschen Anmeldenamen/Passwort angibt,
kommt die Meldung "Die Serverantwort lautet not available". Der Exchange protokolliert aber "535 5.7.3 Authentication unsuccessful".
Meine Frage wäre: Gibt es eine Möglichkeit, die SMTP Kommunikation des Scrpts genauso zu protokollieren, wie es der Exchange auch macht?
Spoiler anzeigen
>,"220 W2K8.server.intern Microsoft ESMTP MAIL Service ready at Sun, 27 May 2012 10:35:22 +0200",
<,EHLO XPPC1,
>,250-W2K8.server.intern Hello [192.168.1.50],
>,250-SIZE,
>,250-PIPELINING,
>,250-DSN,
>,250-ENHANCEDSTATUSCODES,
>,250-STARTTLS,
>,250-X-ANONYMOUSTLS,
>,250-AUTH NTLM LOGIN,
>,250-X-EXPS GSSAPI NTLM,
>,250-8BITMIME,
>,250-BINARYMIME,
>,250-CHUNKING,
>,250-XEXCH50,
>,250 XRDST,
<,AUTH LOGIN,
>,334 <authentication response>,
>,334 <authentication response>,
*,,Inbound AUTH LOGIN failed because of LogonDenied
>,535 5.7.3 Authentication unsuccessful,
-,,Remote
MfG Maxxer