Pharoah Posted March 22, 2016 Share Posted March 22, 2016 Hey and good evening So whats up? i am new into Codin with AutoIT now i want to use AutoIT to Send Email and it seems like am on a high thing doesnt seem to Work as i still get Error 4 My source code looks very much like this #include <Inet.au3> #include <MsgBoxConstants.au3> #Include<file.au3> Local $sSMTPServer = "smtp.gmail.com"; Local $sFromName = "Emeka"; Local $sFromAddress = "therealbadcookie@gmail.com"; Local $sToAddress = "therealbadcookie@gmail.com"; Local $sSubject = "AuToIT"; Local $aBody[1] = "Test "; Local $iResponse = _INetSmtpMail($sSMTPServer, $sFromName, $sFromAddress,$sToAddress, $sSubject, $aBody) Local $iErr = @error If $iResponse = 1 Then MsgBox($MB_SYSTEMMODAL, "Success!", "Mail sent") Else MsgBox($MB_SYSTEMMODAL, "Error!", "Mail failed with error code " & $iErr) EndIf Please whats Wrong? Link to comment Share on other sites More sharing options...
Developers Jos Posted March 22, 2016 Developers Share Posted March 22, 2016 You are trying to do secure email with a regular smtp/pop udf. Look for my _InetSmtpMailCom() udf in examples. 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...
Pharoah Posted March 22, 2016 Author Share Posted March 22, 2016 expandcollapse popup#include <file.au3> #include <Inet.au3> #include <MsgBoxConstants.au3> $SmtpServer = "smtp.gmail.com" $FromName = "MrX" $FromAddress = "badbeankoka@gmail.com" $ToAddress = "badbeankoka@gmail.com" $Subject = "A Test Mail" $Body = "This Is The Body" $AttachFiles = "" $CcAddress = "badbeankoka@gmail.com" $BccAddress = "badbeankoka@gmail.com" $Importance = "Normal" $Username = "badbeankoka@gmail.com" $Password = "@@**cocoa" $IPPort = 587 $ssl = 1 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 = 587, $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(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 $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail="" EndFunc ;==>_INetSmtpMailCom 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 @Jos Did u mean something like this Link to comment Share on other sites More sharing options...
Developers Jos Posted March 23, 2016 Developers Share Posted March 23, 2016 The examples are shown in the thread to make it work for Gmail, so Did it work? ps: I hope the shown information is not your real userid/password! 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...
Pharoah Posted March 23, 2016 Author Share Posted March 23, 2016 @jos, no it didn't. I didn't see any email in my inbox, nvm that's not my real pass and email Link to comment Share on other sites More sharing options...
Developers Jos Posted March 23, 2016 Developers Share Posted March 23, 2016 ok, so add the error handler as shown in the example and check what it is telling you. 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...
Pharoah Posted March 23, 2016 Author Share Posted March 23, 2016 Nothing just doesn't do anything Link to comment Share on other sites More sharing options...
Developers Jos Posted March 23, 2016 Developers Share Posted March 23, 2016 (edited) Then you haven't added the ComErrorHandler yet. Look at the example as mentioned. do you have these lines at the top of your script?: Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") Jos Edited March 23, 2016 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...
Carm01 Posted March 25, 2016 Share Posted March 25, 2016 (edited) I think Gmail Broke it: Works with my Yahoo mail account just fine... Edited March 25, 2016 by Carm01 attachment add Link to comment Share on other sites More sharing options...
Developers Jos Posted March 25, 2016 Developers Share Posted March 25, 2016 It is a setting in Gmail you can tweak. I use 2 factor authentication with a separate password for sending emails via this UDF. That is working fine. Jos Xandy 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