JamesDover Posted October 29, 2013 Share Posted October 29, 2013 Hello, I'm trying to send an email through gmail IMAP. It doesn't seem to be working correctly. Could the two step verification be causing the issue? It says it sent it but i never receive it. Cheers expandcollapse popup#include <file.au3> ;AutoIt Error Object (Prevents script from crashing if an unexpected error occurs Global $oMyError = ObjEvent("AutoIt.Error", "ErrorDebug") ;;SMTP Email Info Local $Subject = "[AutoIt] Subject" Local $Username = "yourusername@gmail.com" Local $Password = "p@5s" Local $SmtpServer = "smtp.gmail.com" Local $FromName = "SomeName" Local $IPPort = 465 Local $ssl = 1 Local $ToAddress = "to@hotmail.com" Local $FromAddress = "autoit@gmail.com" Local $AttachFiles = "" Local $CcAddress = "" Local $BccAddress = "" Local $Importance = "High" Local $body = "This is the body of the message" Local $oMyRet[1] Local $objEmail _INetSmtpMailCom($SMTPSErver,$FromName,$FromAddress,$ToAddress,$Subject,$Body,"","","",$Importance,$Username,$password,$IPPort,$SSL) Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance = "High", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) $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 ConsoleWrite("echo Sending" & @LF) If Not IsObj($objEmail) Then ConsoleWrite("echo error sending (not an object)" & @CRLF) $sendfailed = True Else $sendfailed = False $objEmail.Send EndIf ConsoleWrite("echo SENT" & @LF) If @error Then $sendfailed = True SetError(2) ;~ _ArrayDisplay($oMyRet, "MyRet") Return $oMyRet[1] EndIf $objEmail = 0 EndFunc ;==>_INetSmtpMailCom Func ErrorDebug() Local $HexNumber Local $strMsg $HexNumber = Hex($oMyError.Number, 8) $strMsg = "Error Number: " & $HexNumber & @CRLF $strMsg &= "WinDescription: " & $oMyError.WinDescription & @CRLF $strMsg &= "Script Line: " & $oMyError.ScriptLine & @CRLF FileWrite(@ScriptDir & "\" & @ScriptName & "_ErrorDebug.txt", "------------------[Error]------------------" & @LF & $strMsg & @LF & @LF) SetError(1) EndFunc ;==>ErrorDebug Skysnake 1 Link to comment Share on other sites More sharing options...
abberration Posted October 29, 2013 Share Posted October 29, 2013 (edited) I have had a lot of trouble with sending emails until I found this UDF made by Jos: '?do=embed' frameborder='0' data-embedContent>> Edited October 29, 2013 by abberration Easy MP3 | Software Installer | Password Manager Link to comment Share on other sites More sharing options...
JamesDover Posted October 30, 2013 Author Share Posted October 30, 2013 This looks promising however I got this error. (see attachment) Link to comment Share on other sites More sharing options...
JamesDover Posted October 30, 2013 Author Share Posted October 30, 2013 Never mind I got it figured out it was the two step verification causing the issue. I turned it off and it works. Link to comment Share on other sites More sharing options...
tonycst Posted November 2, 2013 Share Posted November 2, 2013 Never mind I got it figured out it was the two step verification causing the issue. I turned it off and it works. And you fixed it how ? I get ### COM Error ! Number: 80020009 ScriptLine: 92 Description:The transport failed to connect to the server. no matter what port i chose 25 or 465 with SSL 1 for Gmail as it is required. need help. Link to comment Share on other sites More sharing options...
MHz Posted November 2, 2013 Share Posted November 2, 2013 Desperation does strange things, aye. Stop panicking, OK. Link to comment Share on other sites More sharing options...
Developers Jos Posted November 2, 2013 Developers Share Posted November 2, 2013 And you fixed it how ? I get ### COM Error ! Number: 80020009 ScriptLine: 92 Description:The transport failed to connect to the server. no matter what port i chose 25 or 465 with SSL 1 for Gmail as it is required. need help. He was using the two step verification which requires the generation for a special password. Read up on Gmail 2 step authentication when you want to know the specifics but this is a nice way to avoid being hacked. Jos tonycst 1 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...
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