voider Posted March 25, 2016 Posted March 25, 2016 Just now, Jos said: No idea, this UDF is using the standard CDO COM object, so you could try searching for this whether it can be set. Jos Thanks Jos. Some mail servers especially yandex blocks messages that has no usual Client ID. That's why i'm asking for .I'll dig into it. Thanks anyways and Keep Up.
JCs Posted September 19, 2016 Posted September 19, 2016 Hi. I'm trying to use your code, but it fails regardless the parameters I set. Quote ### COM Error ! Number: 800401F3 ScriptLine: 38 Description: ### COM Error ! Number: 000000A9 ScriptLine: 39 Description: ### COM Error ! Number: 000000A9 ScriptLine: 40 Description: ### COM Error ! Number: 000000A9 ScriptLine: 43 Description: ### COM Error ! Number: 000000A9 ScriptLine: 44 Description: ### COM Error ! Number: 000000A9 ScriptLine: 45 Description: ### COM Error ! Number: 000000A9 ScriptLine: 49 Description: ### COM Error ! Number: 000000A9 ScriptLine: 66 Description: ### COM Error ! Number: 000000A9 ScriptLine: 67 Description: ### COM Error ! Number: 000000A9 ScriptLine: 69 Description: ### COM Error ! Number: 000000A9 ScriptLine: 72 Description: ### COM Error ! Number: 000000A9 ScriptLine: 73 Description: ### COM Error ! Number: 000000A9 ScriptLine: 74 Description: ### COM Error ! Number: 000000A9 ScriptLine: 80 Description: ### COM Error ! Number: 000000A9 ScriptLine: 86 Description: ### COM Error ! Number: 000000A9 ScriptLine: 90 Description: ### COM Error ! Number: 000000A9 ScriptLine: 92 Description: It terminates with a msgbox: Error code:2 Description: What is wrong with it? It seems every line with $objEmail related had failed. I think that it can't create that object, but why?
31290 Posted January 22, 2017 Posted January 22, 2017 Hi, Thanks a lot for the code! I have a question though. I'd like to send an email from my enterprise gmail account but when filling required information (username, password, addresses, etc..) I have this error message: --------------------------- Error sending message --------------------------- Error code:2 Description:The message could not be sent to the SMTP server. The transport error code was 0x800ccc60. The server response was * OK Gimap ready for requests from 77.203.211.214 hb3mb186828942wjd --------------------------- OK --------------------------- Indeed, to connect to my pro mailbox, I have to connect to my SSO first. The email sending is working perfectly if I use my personal gmail account... Any clue on how to achieve that for my pro account? Is it at least possible? Thanks ~~~ Doom Shall Never Die, Only The Players ~~~
MattHiggs Posted January 22, 2017 Posted January 22, 2017 40 minutes ago, 31290 said: Hi, Thanks a lot for the code! I have a question though. I'd like to send an email from my enterprise gmail account but when filling required information (username, password, addresses, etc..) I have this error message: --------------------------- Error sending message --------------------------- Error code:2 Description:The message could not be sent to the SMTP server. The transport error code was 0x800ccc60. The server response was * OK Gimap ready for requests from 77.203.211.214 hb3mb186828942wjd --------------------------- OK --------------------------- Indeed, to connect to my pro mailbox, I have to connect to my SSO first. The email sending is working perfectly if I use my personal gmail account... Any clue on how to achieve that for my pro account? Is it at least possible? Thanks Does pro Google mail use the same SMTP server as personal google? I would try using this handy little command line tool to see if you are able to send mail that way. Try (from command line): CMail -from:<Enterpriseemail>:"<Your name>" -to:<Email address of recipient> -subject:"<Subject>" -body:"<Some test text>" -host:<username for enterprise login>:<Password for enterprise login>@<FQDN for smtp server used>:<port number> -starttls -requiretls -d The text between the <> is what you fill in. The "-d" switch will output debugging information. You also might find this useful:https://support.google.com/a/answer/176600?hl=en Skysnake 1
31290 Posted January 22, 2017 Posted January 22, 2017 MattHiggs, thanks for your input. In fact, this is working when $Username is set to my pro email address (not my SSO username) and I have to lower the "Security Checkup" within my pro email settings. FYI, yes, Pro Google Mail uses the same SMTP server and the same ports. So, no need to degub anything but thanks again ~~~ Doom Shall Never Die, Only The Players ~~~
MattHiggs Posted January 23, 2017 Posted January 23, 2017 19 hours ago, 31290 said: MattHiggs, thanks for your input. In fact, this is working when $Username is set to my pro email address (not my SSO username) and I have to lower the "Security Checkup" within my pro email settings. FYI, yes, Pro Google Mail uses the same SMTP server and the same ports. So, no need to degub anything but thanks again Hey man. Whatever works, right?
Sarah2016 Posted January 26, 2017 Posted January 26, 2017 In work, we use a local proxy in order to get internet connection (10.1.1.4:80) ... Is there any way I can let the script use this proxy??? Thanks in advance
MattHiggs Posted January 26, 2017 Posted January 26, 2017 I don't know kind of Proxy server you use at your organization, but I would try using this tool to send your emails. Look at my post a bit farther up the page to see an example command line command, but you would add "-proxy:[user:pass@]host[:port]".
Sarah2016 Posted January 27, 2017 Posted January 27, 2017 (edited) tried it at home (proxy not needed) and got message sent failed #edit: worked! read FAQ in the web, need some special considerations for gmail Edited January 27, 2017 by Sarah2016
onzi_be Posted January 29, 2017 Posted January 29, 2017 On 28/03/2006 at 9:17 PM, Jos said: expandcollapse popup; ;################################## ; Include ;################################## #Include<file.au3> ;################################## ; Variables ;################################## $SmtpServer = "MailServer" ; address for the smtp-server to use - REQUIRED $FromName = "Name" ; name from who the email was sent $FromAddress = "your@Email.Address.com" ; address from where the mail should come $ToAddress = "your@Email.Address.com" ; destination address of the email - REQUIRED $Subject = "Userinfo" ; subject from the email - can be anything you want it to be $Body = "" ; 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 = "CCadress1@test.com" ; address for cc - leave blank if not needed $BccAddress = "BCCadress1@test.com" ; 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 ;################################## ; 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 Edit: Fixed Bcc ... Edit: Added support for different port and SLL which are used by GMail (Port 465) Edit: Added Importance support (10/2008) Hello everybody, I just had a problem when send attachment a database file. The file was received With content-transfer-encoding = "quoted-printable" and corrupted database After some reading for CDO.Message Finlay I added: " $objEmail.Attachments(1).Fields.Item("urn:schemas:mailheader:content-disposition") = "attachment" $objEmail.Attachments(1).Fields.Item("urn:schemas:mailheader:content-transfer-encoding") = "base64" $objEmail.Attachments(1).Fields.Update " Thats help to send attachment without corrupt.
n3wbie Posted October 13, 2017 Posted October 13, 2017 On 3/29/2006 at 1:47 AM, Jos said: expandcollapse popup; ;################################## ; Include ;################################## #Include<file.au3> ;################################## ; Variables ;################################## $SmtpServer = "MailServer" ; address for the smtp-server to use - REQUIRED $FromName = "Name" ; name from who the email was sent $FromAddress = "your@Email.Address.com" ; address from where the mail should come $ToAddress = "your@Email.Address.com" ; destination address of the email - REQUIRED $Subject = "Userinfo" ; subject from the email - can be anything you want it to be $Body = "" ; 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 = "CCadress1@test.com" ; address for cc - leave blank if not needed $BccAddress = "BCCadress1@test.com" ; 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 ;################################## ; 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 Edit: Fixed Bcc ... Edit: Added support for different port and SLL which are used by GMail (Port 465) Edit: Added Importance support (10/2008) >"\\Main\E\Vinit\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Desktop\smtp.au3" /UserParams +>19:02:52 Starting AutoIt3Wrapper v.14.801.2025.0 SciTE v.3.4.4.0 Keyboard:00000409 OS:WIN_7/Service Pack 1 CPU:X64 OS:X86 Environment(Language:0409) +> SciTEDir => \\Main\E\Vinit\AutoIt3\SciTE UserDir => \\Main\E\Vinit\AutoIt3\SciTE\AutoIt3Wrapper >Running AU3Check (3.3.12.0) from:\\Main\E\Vinit\AutoIt3 input:D:\Desktop\smtp.au3 "D:\Desktop\smtp.au3"(41,12) : error: missing separator character before keyword. $objEmail.To ~~~~~~~~~~^ D:\Desktop\smtp.au3 - 1 error(s), 0 warning(s) !>19:02:53 AU3Check ended. Press F4 to jump to next error.rc:2 +>19:02:53 AutoIt3Wrapper Finished. >Exit code: 2 Time: 0.8591
Developers Jos Posted October 13, 2017 Author Developers Posted October 13, 2017 You are only posting my original posted code and your error message without any question. Is there one? If you need help with the error you will have to post your version of the script, not mine! 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.
n3wbie Posted October 13, 2017 Posted October 13, 2017 7 minutes ago, Jos said: You are only posting my original posted code and your error message without any question. Is there one? If you need help with the error you will have to post your version of the script, not mine! Jos Updated Autoit version and got it resolved thanks and sorry for posting wrongly
n3wbie Posted October 13, 2017 Posted October 13, 2017 16 minutes ago, Jos said: You are only posting my original posted code and your error message without any question. Is there one? If you need help with the error you will have to post your version of the script, not mine! Jos i was using ur script only just changed credentials so just quoted ur post and error seems to be with au3check old version that i was using now fixed I was Searching and found this thread and my question was duplicate to this one so ...
aixylinux Posted November 13, 2017 Posted November 13, 2017 I have written a script Send_Email.au3 which uses _INetSmtpMailCom.au3. The script obtains default parameters from an ini file. Many common parameters can be set from the command line and from the environment. Thanks to all who have contributed prior art to this tool. Send_Email.zip
Greenket Posted January 23, 2018 Posted January 23, 2018 Hey All , its all working fine for me but can somebody tell me at the part of : $Body = "" Is there a way i can say it needs to send the computername or the username (like @username ) or ( @computername) of the user in the email?
Developers Jos Posted January 23, 2018 Author Developers Posted January 23, 2018 Something like? : $Body = "computername is " & @computername & "<br>username is " & @username 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.
Greenket Posted January 24, 2018 Posted January 24, 2018 11 hours ago, Jos said: Something like? : $Body = "computername is " & @computername & "<br>username is " & @username Jos Hey Jos , ive already done this in the UDF: $objEmail.Subject = $s_Subject & @ComputerName and $objEmail.Textbody = $as_Body & @CRLF & @UserName This adds always at the end of the message / subject the computername and username. But thanks for your answer I think that might work too.
Zen14 Posted January 29, 2018 Posted January 29, 2018 Hi I have a question for you mr Jos. I compiled ur script as mailer.exe and filled it with my information. My main goal is sending a txt file. It works if i run the compiled file. I recieve the email with attachment. My problem occurs when i try to run the mailer. Exe file from my own script like this run("mailer. Exe"). It seems to work as it sends the mail and i recieve it but there is no attachment. My script is a long loop and the run("mailer. Exe") is positioned in the beginning of the loop and it executes about ever 10minutes. So my question would be if you know why the file attachment is missing?
Developers Jos Posted January 29, 2018 Author Developers Posted January 29, 2018 (edited) 7 minutes ago, Zen14 said: My question would be if you know why the file attachment is missing? You have an mistake in your script, likely something with the workdir, but without showing it, there isn't much we can do. Jos Edited January 29, 2018 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.
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