flappert87 Posted January 4, 2012 Share Posted January 4, 2012 Hi everybody, Script listed below sends emails with plain text just fine. but when i try to use the $attachfiles and send a attachments it doesnt work in the COMPILED emailscript.exe version, the script version within the editor sends the email with file without errors. Some how the compiled emailscript.exe version can't handle the $attachfiles and gives a error on the : _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject & "", $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl) line. when i then take away the $AttachFiles and change it into a " " the .exe version works again but doesn't contain an attachment offcourse, very frustrating . Anyone an idea on this ? expandcollapse popup#NoTrayIcon ; trayicon autoit wordt uitgeschakeld. #include <INet.au3> #include <File.au3> #include <FileConstants.au3> $SmtpServer = "mysmtp" ; address for the smtp-server to use - REQUIRED $FromName = "USSU Unlimited email log" ; name from who the email was sent $FromAddress = "myemail" ; address from where the mail should come $ToAddress = "myemail@email.com" ; destination address of the email - REQUIRED $Subject = "subject" ; subject from the email - can be anything you want it to be $Body = "textinsidebody" ; the messagebody from the mail - can be left blank but then you get a blank mail $AttachFiles = "myfilelocation" ; 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 = "" ; Send message priority: "High", "Normal", "Low" $Username = "myusername" ; username for the account used from where the mail gets sent - REQUIRED $Password = "mypassword" ; 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 ;################################## ; Script EMAIL ;################################## Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") _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_AttachFiles) Then $objEmail.AddAttachment($s_AttachFiles) 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:Impo rtance") = "High" Case "Normal" $objEmail.Fields.Item("urn:schemas:mailheader:Impo rtance") = "Normal" Case "Low" $objEmail.Fields.Item("urn:schemas:mailheader:Impo rtance") = "Low" EndSwitch ;$objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail = "" EndFunc ;==>_INetSmtpMailCom ; ; Link to comment Share on other sites More sharing options...
flappert87 Posted May 6, 2012 Author Share Posted May 6, 2012 solved it by putting the .txt file into the body from the email. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now