t0nZ Posted June 18, 2014 Share Posted June 18, 2014 Same problem like Wombat, (variables names with dots) downloaded beta AU3Check (3.3.13.0) and overwrited the stable version, problem resolved. Link to comment Share on other sites More sharing options...
ViciousXUSMC Posted September 17, 2014 Share Posted September 17, 2014 Not working for me have tried just about everything. My Error: Error code:2 Description:The transport failed to connect to the server My Code: expandcollapse popup; ;################################## ; Include ;################################## #Include<file.au3> ;################################## ; Variables ;################################## $SmtpServer = "smtp.gmail.com" ; address for the smtp-server to use - REQUIRED $FromName = "Name" ; name from who the email was sent $FromAddress = "my gmail@domain.com" ; address from where the mail should come $ToAddress = "Test@TestAccount.com" ; destination address of the email - REQUIRED $Subject = "test" ; subject from the email - can be anything you want it to be $Body = "test" ; the messagebody from the mail - can be left blank but then you get a blank mail $AttachFiles = "" ; the file(s) you want to attach seperated with a ; (Semicolon) - 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 = "my gmail name@domain.com" ; username for the account used from where the mail gets sent - REQUIRED $Password = "my gmail pw" ; password for the account used from where the mail gets sent - REQUIRED $IPPort = 465 ; port used for sending the mail $ssl = 1 ; 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 ;################################## ; 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 : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF) $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 I have a Google Apps domain. So I use Gmail but with a domain instead of gmail.com its mydomain.com Still logs in and uses the gmail site/interface Link to comment Share on other sites More sharing options...
Developers Jos Posted September 17, 2014 Author Developers Share Posted September 17, 2014 Try changing the Username to just the part before the @: $Username = "my gmail name" ; username for the account used from where the mail gets sent - REQUIRED Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
ViciousXUSMC Posted September 17, 2014 Share Posted September 17, 2014 Try changing the Username to just the part before the @: $Username = "my gmail name" ; username for the account used from where the mail gets sent - REQUIRED Jos I have tried that, does not work and I do not know how it could since there would be no way to know what account I am using. Link to comment Share on other sites More sharing options...
Developers Jos Posted September 17, 2014 Author Developers Share Posted September 17, 2014 (edited) That is what I do with a regular gmail account. Does it work when you configure it in outlook? Maybe your SMTP server should be the same domain as your email address? Jos Edited September 17, 2014 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
ViciousXUSMC Posted September 17, 2014 Share Posted September 17, 2014 (edited) No still runs on the backbone of gmail. When I configure it for my phone or other devices. I can also find verification of that here: https://www.activecollab.com/forums/post/16180/#post16180 and here: https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server I was going to test in another location incase its firewall related, that is about the last thing I can think of if its not application/code related. Let you know when I get home. Edited September 17, 2014 by ViciousXUSMC Link to comment Share on other sites More sharing options...
ViciousXUSMC Posted September 17, 2014 Share Posted September 17, 2014 Well no dice, tried all the combinations I can think of for the varibles and now testing on a different network where I control the firewall and still same error. Link to comment Share on other sites More sharing options...
newbee89 Posted September 18, 2014 Share Posted September 18, 2014 Hi All please help me I am getting error as 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 = 465, $ssl = 1)^error ERROR: Expected a variable in user function call. below is my script, i am not including actual gmail account details. These are for understanding. What i am missing here. Do i need to give all the details in 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 = 465, $ssl = 1) #Include<file.au3> ;~ =================Global Variables ================= $SmtpServer = "smtp.gmail.com" ; address for the smtp-server to use - REQUIRED $FromName = "AutoIt" ; name from who the email was sent $FromAddress = "mygmail@gmail.com" ; address from where the mail should come $ToAddress = "another@gmail.com" ; destination address of the email - REQUIRED $Subject = "LogFiles" ; subject from the email - can be anything you want it to be $Body = "Test Results" ; the messagebody from the mail - can be left blank but then you get a blank mail $AttachFiles = "C:ScriptLog" ; the file(s) you want to attach seperated with a ; (Semicolon) - 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 = "gmailaccountname" ; username for the account used from where the mail gets sent - REQUIRED $Password = "gmailpassword" ; password for the account used from where the mail gets sent - REQUIRED $IPPort = 465 or 25 ; port used for sending the mail $ssl = 0 or 1 ; enables/disables secure socket layer sending - put to 1 if ;~ ====================================================================================================================================== 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 = 465, $ssl = 1) 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 : $S_Files2Attach[$x] = ' & $S_Files2Attach[$x] & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then ConsoleWrite('+> File attachment added: ' & $S_Files2Attach[$x] & @LF) $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 Link to comment Share on other sites More sharing options...
ViciousXUSMC Posted September 20, 2014 Share Posted September 20, 2014 Got e-mail working in autoit by using Blat & Stunnel then using @Comspec but its not very ideal. Atleast I know it can be done though. Still have not gotten this working nor do I know why it does not work. Link to comment Share on other sites More sharing options...
water Posted September 23, 2014 Share Posted September 23, 2014 You have already a thread asking the same >question. Please stick with one thread! My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
maniootek Posted September 24, 2014 Share Posted September 24, 2014 Hi guys. I have used this script for some time and it worked perfectly. Now I have updated my SciTE by installing full package from here: https://www.autoitscript.com/site/autoit-script-editor/downloads/ Now when I try to compile my email script I got error. My console output is: email.au3"(40,15) : error: missing separator character before keyword. $objEmail.To ~~~~~~~~~^ email.au3 - 1 error(s), 0 warning(s) any idea what is wrong? Link to comment Share on other sites More sharing options...
water Posted September 24, 2014 Share Posted September 24, 2014 That's a known bug. Try with the latest beta. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Link to comment Share on other sites More sharing options...
Developers Jos Posted September 24, 2014 Author Developers Share Posted September 24, 2014 This is an au3check bug which is fixed in the beta release, . Just copy it from beta into the production directory. jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
maniootek Posted September 29, 2014 Share Posted September 29, 2014 Any chance that script leave copy of message on server side in "Sent" folder? Link to comment Share on other sites More sharing options...
Sabai Posted October 3, 2014 Share Posted October 3, 2014 Hi Jos, I think a few of the problems people have been having can be fixed by changing this line: For $x = 1 To $S_Files2Attach[0] To: For $x = 1 To $S_Files2Attach[0] - 1 A friend of mine found this - I had been having a heck of a time with an 'Access is denied' error that would go to console with a simple script I wrote, but kept popping up in my full script. The script would send the email with attachments okay, in both instances, but I couldn't get your error handler to work in my full script. Turns out the error was having one too attempts at attaching the file, the above change fixed the error altogether, and all attachments are now being sent with no errors in both scripts. Link to comment Share on other sites More sharing options...
Developers Jos Posted October 3, 2014 Author Developers Share Posted October 3, 2014 Nah, that doesn't sound right to me. $S_Files2Attach[0] contains the number of files found. When there is only one file specified it will contain 1 and $S_Files2Attach[1] will contain the filename. Agree? SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Developers Jos Posted October 3, 2014 Author Developers Share Posted October 3, 2014 Any chance that script leave copy of message on server side in "Sent" folder? Which mailsystem are you using? Just checked and Gmail has a copy of the sent Emails in the Sent box, Yahoo doesn't. Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Sabai Posted October 6, 2014 Share Posted October 6, 2014 It could have been due to an extra semi-colon at the end of the attachment list, I am creating the list like this: If $nCounter > 0 Then For $i = 1 To $nCounter $sAttachFiles = $sAttachFiles & "C:screenshot." & $i & ".jpg;" Next EndIf When I have used StringSplit() before, it gets the correct number of entries even while leaving a trailing separator, but this one may be adding one additional blank entry causing the error. Either way, whether it's one attachment or multiple, the emailer is sending all attachments correctly with the above change. Link to comment Share on other sites More sharing options...
fuzzie Posted December 2, 2014 Share Posted December 2, 2014 Sure, just seperate them like this: "CCadress1@test.com;CCadress2@test.com" Jos With a semicolon or with a comma? "CCadress1@test.com,CCadress2@test.com" Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted December 2, 2014 Moderators Share Posted December 2, 2014 With a semicolon or with a comma? "CCadress1@test.com,CCadress2@test.com" I personally have only ever used a semi-colon, are you suggesting that comma works for you? Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. 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