Code : Tout sélectionner
#include <Constants.au3>
#include <String.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $MonModel = ""
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 332, 152)
$Label1 = GUICtrlCreateLabel("Nom", 16, 8, 26, 17)
$Label2 = GUICtrlCreateLabel("Prenom", 16, 32, 40, 17)
$Label3 = GUICtrlCreateLabel("Produit", 16, 56, 37, 17)
$Label4 = GUICtrlCreateLabel("Commande", 16, 80, 57, 17)
$InputNom = GUICtrlCreateInput("CHIWAWA", 112, 8, 153, 21)
$InputPrenom = GUICtrlCreateInput("Henri", 112, 32, 153, 21)
$InputProduit = GUICtrlCreateInput("Ordinateur", 112, 56, 153, 21)
$InputCommande = GUICtrlCreateInput("0023AZ45567VV", 112, 80, 153, 21)
$ButtonMail = GUICtrlCreateButton("Generer Mail", 104, 112, 129, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ButtonMail
IniWrite ( @ScriptDir & "\Data.ini", "DATA", "@Nom@", GUICtrlRead($InputNom) )
IniWrite ( @ScriptDir & "\Data.ini", "DATA", "@Prenom@", GUICtrlRead($InputPrenom) )
IniWrite ( @ScriptDir & "\Data.ini", "DATA", "@Produit@", GUICtrlRead($InputProduit) )
IniWrite ( @ScriptDir & "\Data.ini", "DATA", "@RefCommande@", GUICtrlRead($InputCommande) )
Global $Tags = IniReadSection(@ScriptDir & "\Data.ini", "DATA")
_CreateMail("Toto", "moi", "mail de test", "testcommande.html","",0,@ScriptDir & "\")
EndSwitch
WEnd
Func _CreateMail($From, $To, $Subject, $Model, $sAttachments = "", $AutoSend = 0, $ModelDirectory = "C:\")
; ********* constantes de modèle objet Outlook **************
Local $asAttachments
Local $olMailItem = 0
Local $olFormatHTML = 1
local $i
; Lecture du model celui ci est placé dans une variable
$MonModel = _ReadModel($Model,$ModelDirectory)
;*********************************************************************************
; ici Faire une fonction qui va remplacer les tags dans $MonModel
; avec la fonction StringReplace
For $i = 1 To $Tags[0][0]
$MonModel = StringReplace($MonModel, $Tags[$i][0], $Tags[$i][1])
Next
;*********************************************************************************
$oOApp = ObjCreate("Outlook.Application")
$oOMail = $oOApp.CreateItem($olMailItem)
With $oOMail
.SentOnBehalfOfName = ($From) ; Envoyé en tant que...
.To =($To) ; destinataire
.Subject = $Subject ; Sujet du mail
.BodyFormat = $olFormatHTML ; format HTML
;.Importance = $olImportanceHigh
;.Body = "email message"
.HTMLBody = $MonModel ; model en HTML
If $sAttachments <> "" Then
$asAttachments = StringSplit($sAttachments, ";")
For $iNumOfAttachments = 1 To $asAttachments[0]
.Attachments.Add($asAttachments[$iNumOfAttachments]) ; pour Attacher un ou plusieur fichier
Next
EndIf
.Display ; Affichage du mail
If $AutoSend = 1 Then
.Send
EndIf
EndWith
EndFunc ;==>_CreateMail
Func _ReadModel($ModelMail,$ModelDirectory)
$file = FileOpen($ModelDirectory & $ModelMail, 0)
; Verifie si le fichier a bien ete ouvert avant de le lire
If $file = -1 Then
MsgBox(0, "Erreur", "Impossible d'ouvrire le fichier.")
Exit ; Dans certain cas sortir brusquemment du programme peut etre problematique.
Else
Return FileRead($file) ; on copie le contenu du fichier dans une variable
EndIf
EndFunc ;==>_ReadModel