#include <File.au3>#include <ButtonConstants.au3>#include <EditConstants.au3>#include <GUIConstantsEx.au3>#include <StaticConstants.au3>#include <WindowsConstants.au3>#include <Date.au3>; ===============================================================================================================================; Variables for the _INetSmtpMailCom; ===============================================================================================================================Global Enum _
$g__INetSmtpMailCom_ERROR_FileNotFound = 1, _
$g__INetSmtpMailCom_ERROR_Send, _
$g__INetSmtpMailCom_ERROR_ObjectCreation, _
$g__INetSmtpMailCom_ERROR_COUNTERGlobal Const $g__cdoSendUsingPickup = 1 ; Send message using the local SMTP service pickup directory.Global Const $g__cdoSendUsingPort = 2 ; Send the message using the network (SMTP over the network). Must use this to use Delivery NotificationGlobal Const $g__cdoAnonymous = 0 ; Do not authenticateGlobal Const $g__cdoBasic = 1 ; basic (clear-text) authenticationGlobal Const $g__cdoNTLM = 2 ; NTLMGlobal $gs_thoussep = "."Global $gs_decsep = ","Global $sFileOpenDialog = ""; Delivery Status NotificationsGlobal Const $g__cdoDSNDefault = 0 ; NoneGlobal Const $g__cdoDSNNever = 1 ; NoneGlobal Const $g__cdoDSNFailure = 2 ; FailureGlobal Const $g__cdoDSNSuccess = 4 ; SuccessGlobal Const $g__cdoDSNDelay = 8 ; Delay;=======================================================================================================================================================#Region ### START Koda GUI section ### Form=C:\Program Files\AutoIt3\SciTE\Koda\Templates\Form1.kxfGlobal $Form1 = GUICreate("Formulaire", 273, 296, 691, 192)GUISetBkColor(0xB9D1EA)Global $Label1 = GUICtrlCreateLabel("Nom", 32, 8, 76, 24, $SS_RIGHT)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Input1 = GUICtrlCreateInput("", 120, 8, 121, 24)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Label2 = GUICtrlCreateLabel("Prénom", 32, 40, 76, 24, $SS_RIGHT)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Input2 = GUICtrlCreateInput("", 120, 40, 121, 24)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Label3 = GUICtrlCreateLabel("Adresse", 32, 72, 76, 24, $SS_RIGHT)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Input3 = GUICtrlCreateInput("", 120, 72, 121, 24)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Label4 = GUICtrlCreateLabel("Ville", 32, 104, 76, 24, $SS_RIGHT)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Input4 = GUICtrlCreateInput("", 120, 104, 121, 24)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Label5 = GUICtrlCreateLabel("Code postale", 24, 136, 84, 24, $SS_RIGHT)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Input5 = GUICtrlCreateInput("", 120, 136, 121, 24)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Label6 = GUICtrlCreateLabel("Date", 24, 168, 84, 24, $SS_RIGHT)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Input6 = GUICtrlCreateInput(_NowDate(), 120, 168, 121, 24)GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")Global $Button1 = GUICtrlCreateButton("Envoie", 64, 208, 145, 65)GUISetState(@SW_SHOW)#EndRegion ### END Koda GUI section ###While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 $nom = GUICtrlRead($Input1) $prenom = GUICtrlRead($Input2) $adresse= GUICtrlRead($Input3) $ville = GUICtrlRead($Input4) $code = GUICtrlRead($Input5) $date = GUICtrlRead($Input6) $text = '<font size="+1"><span style="color: rgb(51, 102, 255);">Bonjour, le formulaire vient d être complété' &'<BR>'& $nom & ' ' & $prenom &'<BR>'& $adresse &'<BR>'& $code & ' ' & $ville &'<BR>'& 'Le ' & $date & '</span></font>' _Sendmail
($text) EndSwitchWEnd;=======================================================================================================================================================Func _Sendmail
($text) Local $sSmtpServer = "smtp.googlemail.com" ; address for the smtp-server to use - REQUIRED Local $sFromName = "trucmuch@gmail.com" ; name from who the email was sent Local $sFromAddress = "trucmuch@gmail.com" ; address from where the mail should come Local $sToAddress = "jerecois@gmail.com" ; destination address of the email - REQUIRED Local $sSubject = "FORMULAIRE" ; subject from the email - can be anything you want it to be Local $sBody = $text ; the messagebody from the mail - can be left blank but then you get a blank mail Local $sAttachFiles = "" ; the file(s) you want to attach seperated with a ; (Semicolon) - leave blank if not needed Local $sCcAddress = "" ; address for cc - leave blank if not needed Local $sBccAddress = "" ; address for bcc - leave blank if not needed Local $sImportance = "Normal" ; Send message priority: "High", "Normal", "Low" Local $sUsername = "trucmuch@gmail.com" ; username for the account used from where the mail gets sent - REQUIRED Local $sPassword = "********" ; password for the account used from where the mail gets sent - REQUIRED Local $iIPPort = 465 ; GMAIL port used for sending the mail Local $bSSL = True ; GMAIL enables/disables secure socket layer sending - set to True if using httpS Local $bIsHTMLBody = False Local $iDSNOptions = $g__cdoDSNDefault Local $rc = _INetSmtpMailCom
($sSmtpServer, $sFromName, $sFromAddress, $sToAddress, $sSubject, $sBody, $sAttachFiles, $sCcAddress, $sBccAddress, $sImportance, $sUsername, $sPassword, $iIPPort, $bSSL, $bIsHTMLBody, $iDSNOptions) If @error Then MsgBox(0, "_INetSmtpMailCom(): Error sending message", _
"Error code: " & @error & @CRLF & @CRLF & _
"Error Hex Number: " & _INetSmtpMailCom_ErrHexNumber
() & @CRLF & @CRLF & _
"Description: " & _INetSmtpMailCom_ErrDescription
() & @CRLF & @CRLF & _
"Description (rc): " & $rc & @CRLF & @CRLF & _
"ScriptLine: " & _INetSmtpMailCom_ErrScriptLine
() _
) ConsoleWrite("### COM Error ! Number: " & _INetSmtpMailCom_ErrHexNumber
() & " ScriptLine: " & _INetSmtpMailCom_ErrScriptLine
() & " Description:" & _INetSmtpMailCom_ErrDescription
() & @LF) Else Dim $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(262208, "SUCCESS", ":-)", 5) EndIfEndFunc ;==>_Enviarmail#Region UDF Functions; The UDF; #FUNCTION# ====================================================================================================================; Name ..........: _INetSmtpMailCom; Description ...:; Syntax ........: _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[, $bSSL = False[, $bIsHTMLBody = False[, $iDSNOptions = $g__cdoDSNDefault]]]]]]]]]]]]); Parameters ....: $s_SmtpServer - A string value.; $s_FromName - A string value.; $s_FromAddress - A string value.; $s_ToAddress - A string value.; $s_Subject - [optional] A string value. Default is "".; $s_Body - [optional] A string value. Default is "".; $s_AttachFiles - [optional] A string value. Default is "".; $s_CcAddress - [optional] A string value. Default is "".; $s_BccAddress - [optional] A string value. Default is "".; $s_Importance - [optional] A string value. Default is "Normal".; $s_Username - [optional] A string value. Default is "".; $s_Password - [optional] A string value. Default is "".; $IPPort - [optional] An integer value. Default is 25.; $bSSL - [optional] A binary value. Default is False.; $bIsHTMLBody - [optional] A binary value. Default is False.; $iDSNOptions - [optional] An integer value. Default is $g__cdoDSNDefault.; Return values .: None; Author ........: Jos; Modified ......: mLipok; Remarks .......:; Related .......: http://www.autoitscript.com/forum/topic/23860-smtp-mailer-that-supports-html-and-attachments/; Link ..........: http://www.autoitscript.com/forum/topic/167292-smtp-mailer-udf/; Example .......: Yes; ===============================================================================================================================Func _INetSmtpMailCom
($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $s_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance = "Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $bSSL = False, $bIsHTMLBody = False, $iDSNOptions = $g__cdoDSNDefault) ; init Error Handler _INetSmtpMailCom_ErrObjInit
() Local $objEmail = ObjCreate("CDO.Message") If Not IsObj($objEmail) Then Return SetError($g__INetSmtpMailCom_ERROR_ObjectCreation, Dec(_INetSmtpMailCom_ErrHexNumber
()), _INetSmtpMailCom_ErrDescription
()) ; Clear previous Err information _INetSmtpMailCom_ErrHexNumber
(0) _INetSmtpMailCom_ErrDescription
('') _INetSmtpMailCom_ErrScriptLine
('') $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject ; Select whether or not the content is sent as plain text or HTM If $bIsHTMLBody Then $objEmail.Textbody = $s_Body & @CRLF Else $objEmail.HTMLBody = $s_Body EndIf ; Add Attachments If $s_AttachFiles <> "" Then Local $S_Files2Attach = StringSplit($s_AttachFiles, ";") For $x = 1 To $S_Files2Attach[0] $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) 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) Return SetError($g__INetSmtpMailCom_ERROR_FileNotFound, 0, 0) EndIf Next EndIf ; Set Email Configuration $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = $g__cdoSendUsingPort $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") = $g__cdoBasic $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 $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = $bSSL ;Update Configuration 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 ; Set DSN options If $iDSNOptions <> $g__cdoDSNDefault And $iDSNOptions <> $g__cdoDSNNever Then $objEmail.DSNOptions = $iDSNOptions $objEmail.Fields.Item("urn:schemas:mailheader:disposition-notification-to") = $s_FromAddress;~ $objEmail.Fields.Item("urn:schemas:mailheader:return-receipt-to") = $s_FromAddress EndIf ; Update Importance and Options fields $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then _INetSmtpMailCom_ErrObjCleanUp
() Return SetError($g__INetSmtpMailCom_ERROR_Send, Dec(_INetSmtpMailCom_ErrHexNumber
()), _INetSmtpMailCom_ErrDescription
()) EndIf ; CleanUp $objEmail = "" _INetSmtpMailCom_ErrObjCleanUp
()EndFunc ;==>_INetSmtpMailCom;; Com Error HandlerFunc _INetSmtpMailCom_ErrObjInit
($bParam = Default) Local Static $oINetSmtpMailCom_Error = Default If $bParam == 'CleanUp' And $oINetSmtpMailCom_Error <> Default Then $oINetSmtpMailCom_Error = '' Return $oINetSmtpMailCom_Error EndIf If $oINetSmtpMailCom_Error = Default Then $oINetSmtpMailCom_Error = ObjEvent("AutoIt.Error", "_INetSmtpMailCom_ErrFunc") EndIf Return $oINetSmtpMailCom_ErrorEndFunc ;==>_INetSmtpMailCom_ErrObjInitFunc _INetSmtpMailCom_ErrObjCleanUp
() _INetSmtpMailCom_ErrObjInit
('CleanUp')EndFunc ;==>_INetSmtpMailCom_ErrObjCleanUpFunc _INetSmtpMailCom_ErrHexNumber
($vData = Default) Local Static $vReturn = 0 If $vData <> Default Then $vReturn = $vData Return $vReturnEndFunc ;==>_INetSmtpMailCom_ErrHexNumberFunc _INetSmtpMailCom_ErrDescription
($sData = Default) Local Static $sReturn = '' If $sData <> Default Then $sReturn = $sData Return $sReturnEndFunc ;==>_INetSmtpMailCom_ErrDescriptionFunc _INetSmtpMailCom_ErrScriptLine
($iData = Default) Local Static $iReturn = '' If $iData <> Default Then $iReturn = $iData Return $iReturnEndFunc ;==>_INetSmtpMailCom_ErrScriptLineFunc _INetSmtpMailCom_ErrFunc
() _INetSmtpMailCom_ErrObjInit
() _INetSmtpMailCom_ErrHexNumber
(Hex(_INetSmtpMailCom_ErrObjInit
().number, 8)) _INetSmtpMailCom_ErrDescription
(StringStripWS(_INetSmtpMailCom_ErrObjInit
().description, 3)) _INetSmtpMailCom_ErrScriptLine
(_INetSmtpMailCom_ErrObjInit
().ScriptLine) SetError(1) ; something to check for when this function returns ReturnEndFunc ;==>_INetSmtpMailCom_ErrFunc#EndRegion UDF Functions