JeromeB Posted April 7, 2012 Share Posted April 7, 2012 (edited) Hey, I'm having some trouble with an email. i'm using this : expandcollapse popup#include <INet.au3> #Include<file.au3> $s_SmtpServer = "IP server SMTP" $s_FromName = "jerome" $s_FromAddress = blabla@gmail.com" $s_ToAddress = "hoho@private.com" $s_Subject = "My Test UDF" Dim $as_Body[2] $as_Body[0] = "Testing the new email udf" $as_Body[1] = "Second Line" Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $Response = _INetSmtpMailCom ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body) 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 The thing is, i do not have any body in my mail xD So i'm trying to pass by : $as_Body = "data " & $aData[1][0] & @CRLF & "***************Info***************" & _ "" & @crlf & "date : " & $date& _ "" & @crlf & "Ye " & $Ye& _ "" & @crlf & "Ye: " & $Ye& _ "" & @crlf & "Ye" & $Ye& @CRLF & "*****************Info2*****************" & _ "" & @crlf & "Ye: " & $Ye& _ "" & @crlf & "Ye " & $Ye& _ "" & @crlf & "Ye " & $Ye& _ "" & @crlf & "Ye" & _ "" & @crlf & "_____________________________________________" & _ "" & @crlf & "" & $Ye& "" & _ "" & @crlf & "_____________________________________________" & _ "" & @crlf & "Ye" & $Ye& _ "" & @crlf & "Ye " & $Ye& $insert Its nicely working, i got the email with the all body, execpt the fact that there is no @CRLF on the mail Everything is on the same line .... Any idea why ? Maybe the object textbody got problem with that? Edited April 7, 2012 by JeromeB Link to comment Share on other sites More sharing options...
Developers Jos Posted April 7, 2012 Developers Share Posted April 7, 2012 The first issue makes sense as the UDF doesn't work with an Array for th Body content. As to the second issue: Does your body contain any HTML codes? is so you should use "<br>" for newlines, else it should be working fine. 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...
JeromeB Posted April 7, 2012 Author Share Posted April 7, 2012 hey, Thanks for your fast reply. I'm afraid that i do not use HTML, so no <br> I have try to put all on a same line like that : Maybe its an issue because i use date format on the body Something return that : 07/04/2012 16:31:09 and after this, the string screw up Link to comment Share on other sites More sharing options...
Developers Jos Posted April 7, 2012 Developers Share Posted April 7, 2012 Give me an example that doesn't work for you that I can test with, so I can see what is happening. 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...
JeromeB Posted April 7, 2012 Author Share Posted April 7, 2012 hey, i use this : value under $as_Body = "Ci-joint les détails du ticket numéro " & $aData[1][0] & _;& "***************Info sur l'utilisateur***************" & _ "" & @crlf & "Date de création du ticket : " & $heure_creation_ticket & _ "" & @crlf & "Nom de l'intervenant ou Emetteur du ticket : " & $intervenant & _ "" & @crlf & "Mail : " & $email_intervenant & _ "" & @crlf & "Numéro de téléphone : " & $phone_intervenant & @CRLF & _; "*****************Info sur le ticket*****************" & _ "" & @crlf & "Titre du ticket : " & $ticket_title & _ "" & @crlf & "Emetteur du problème : " & $appelant & _ "" & @crlf & "Lieu de l'intervention : " & $lieu_intervention& _ "" & @crlf & "Description de l'intervention : " & _ "" & @crlf & "_____________________________________________" & _ "" & @crlf & "" & $ticket_description & "" & _ "" & @crlf & "_____________________________________________" & _ "" & @crlf & "Date d'intervention : " & $date_intervention & _ "" & @crlf & "Temps d'intervention : " & $temp_intervention & $insert return me in email : Ci-joint les détails du ticket numéro 39 Date de création du ticket : 07/04/2012 16:46:13 Nom de l'intervenant ou Emetteur du ticket : gfdshgfd Mail : hgfd Numéro de téléphone : hgfd Titre du ticket : hgfdhgfd Emetteur du problème : hgdf Lieu de l'intervention : gfdh Description de l'intervention : _____________________________________________ gfdhgfd _____________________________________________ Date d'intervention : 16:46 07/04/2012 Temps d'intervention : 4 Minutes Pour le moment, cette intervention n'est pas résolut / terminé Link to comment Share on other sites More sharing options...
Developers Jos Posted April 7, 2012 Developers Share Posted April 7, 2012 Give me an example that doesn't work for you that I can test with, so I can see what is happening. 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...
JeromeB Posted April 7, 2012 Author Share Posted April 7, 2012 Sorry, He something not working expandcollapse popup#include <INet.au3> #Include<file.au3> $s_SmtpServer = "myprivateexchangeserver" $s_FromName = "jerome" $s_FromAddress = "email@email.com" $s_ToAddress = "fromtheexchange@server.com" $s_Subject = "My Test UDF" $aData= "18" $heure_creation_ticket = "07/04/2012 14:45:20" $intervenant = "gsdg" $email_intervenant = "fdsgfds" $phone_intervenant = "dsgfds" $ticket_title = "gfds" $appelant = "fdsgfd" $lieu_intervention = "fdsg" $ticket_description = "fdgsfdgfg" $date_intervention = "07/04/2012 14:45:20" $temp_intervention = "44 Minutes" $date_resolution = "14:45 07/04/2012" $insert = "" & @crlf & "Cette intervention à été résolue en date du : " & $date_resolution $as_Body = "Ci-joint les détails du ticket numéro " & $aData & _;& "***************Info sur l'utilisateur***************" & _ "" & @crlf & "Date de création du ticket : " & $heure_creation_ticket & _ "" & @crlf & "Nom de l'intervenant ou Emetteur du ticket : " & $intervenant & _ "" & @crlf & "Mail : " & $email_intervenant & _ "" & @crlf & "Numéro de téléphone : " & $phone_intervenant & @CRLF & _; "*****************Info sur le ticket*****************" & _ "" & @crlf & "Titre du ticket : " & $ticket_title & _ "" & @crlf & "Emetteur du problème : " & $appelant & _ "" & @crlf & "Lieu de l'intervention : " & $lieu_intervention& _ "" & @crlf & "Description de l'intervention : " & _ "" & @crlf & "_____________________________________________" & _ "" & @crlf & "" & $ticket_description & "" & _ "" & @crlf & "_____________________________________________" & _ "" & @crlf & "Date d'intervention : " & $date_intervention & _ "" & @crlf & "Temps d'intervention : " & $temp_intervention & $insert Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $Response = _INetSmtpMailCom ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body) $err = @error If $Response = 1 Then MsgBox(0, "Success!", "Mail sent") Else MsgBox(0, "Error!", "Mail failed with error code " & $err) EndIf 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 Return me in the email : Ci-joint les détails du ticket numéro 18 Date de création du ticket : 07/04/2012 14:45:20 Nom de l'intervenant ou Emetteur du ticket : gsdg Mail : fdsgfds Numéro de téléphone : dsgfds Titre du ticket : gfds Emetteur du problème : fdsgfd Lieu de l'intervention : fdsg Description de l'intervention : _____________________________________________ fdgsfdgfg _____________________________________________ Date d'intervention : 07/04/2012 14:45:20 Temps d'intervention : 44 Minutes Cette intervention à été résolue en date du : 14:45 07/04/2012 Link to comment Share on other sites More sharing options...
Developers Jos Posted April 7, 2012 Developers Share Posted April 7, 2012 This is the output of your script when I send it to Gmail:Ci-joint les détails du ticket numéro 18Date de création du ticket : 07/04/2012 14:45:20Nom de l'intervenant ou Emetteur du ticket : gsdgMail : fdsgfdsNuméro de téléphone : dsgfdsTitre du ticket : gfdsEmetteur du problème : fdsgfdLieu de l'intervention : fdsgDescription de l'intervention :_____________________________________________fdgsfdgfg_____________________________________________Date d'intervention : 07/04/2012 14:45:20Temps d'intervention : 44 MinutesCette intervention à été résolue en date du : 14:45 07/04/2012 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...
JeromeB Posted April 7, 2012 Author Share Posted April 7, 2012 Inded. I have noticed that too. Dunno why its not working on my compagny, using an exchange 2010 server. Link to comment Share on other sites More sharing options...
Developers Jos Posted April 7, 2012 Developers Share Posted April 7, 2012 (edited) So, maybe try to use the <BR> suggestion in stead of the @CRLF to see if Exchange does the translation correctly? $as_Body = "Ci-joint les détails du ticket numéro " & $aData & _;& "***************Info sur l'utilisateur***************" & _ "<BR>" & "Date de création du ticket : " & $heure_creation_ticket & _ "<BR>" & "Nom de l'intervenant ou Emetteur du ticket : " & $intervenant & _ "<BR>" & "Mail : " & $email_intervenant & _ "<BR>" & "Numéro de téléphone : " & $phone_intervenant & @CRLF & _; "*****************Info sur le ticket*****************" & _ "<BR>" & "Titre du ticket : " & $ticket_title & _ "<BR>" & "Emetteur du problème : " & $appelant & _ "<BR>" & "Lieu de l'intervention : " & $lieu_intervention& _ "<BR>" & "Description de l'intervention : " & _ "<BR>" & "_____________________________________________" & _ "<BR>" & "" & $ticket_description & "" & _ "<BR>" & "_____________________________________________" & _ "<BR>" & "Date d'intervention : " & $date_intervention & _ "<BR>" & "Temps d'intervention : " & $temp_intervention & $insert Edited April 7, 2012 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...
water Posted April 7, 2012 Share Posted April 7, 2012 Dunno why its not working on my compagny, using an exchange 2010 server.If you use Outlook as mail client you could send your mails using my OutlookEX UDF. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
JeromeB Posted April 7, 2012 Author Share Posted April 7, 2012 hey, i final get rid of this error problem was the date, you need aparently to pass it with cotation like that : '13/12/13' else its not working. Pretty thanks for your help 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