Page 1 sur 1
outlook envoi de pieces jointes à la date du jour
Posté : dim. 28 oct. 2018 12:16
par yohanb767
Bonjour ,
j'ai un petit script pour envoyer un mail avec une pièce jointe jusque là pas de problème pour envoyer ma pièce jointe
ce que j'aimerai c'est envoyer en pièce jointe tous les fichiers créer à la date du jour et uniquement ceux là
j'ai un dossier avec tous ces fichiers (xlsx) qui ce nomme BL Numérique
voici mon script
Local $olMailItem = 0 Local $olFormatRichText = 3 Local $olImportanceLow = 0 Local $olImportanceNormal = 1 Local $olImportanceHigh = 2 Local $olByValue = 1 Local $olFormatHTML = 2 Local $olFormatPlain = 1 Local $to = "monadresse@hotmail.fr" Local $subj = "test" $oOApp = ObjCreate("Outlook.Application") $oOMail = $oOApp.CreateItem ($olMailItem) $oOMail.Save With $oOMail .To = ($to) .Subject = $subj .BodyFormat = $olFormatHTML .Importance = $olImportanceNormal .HTMLBody = "ca marche" .attachments.add ; j'aimerai joindre uniquement les fichiers xlsx créer à la date du jour;contenu dans le dossier BL Numérique .Send EndWith $oOApp=0
si quelqu'un à une solution , merci d'avance
Yohan
Re: outlook envoi de pieces jointes à la date du jour
Posté : dim. 28 oct. 2018 14:56
par walkson
Bonjour,
Code : Tout sélectionner
#include <File.au3>
#include <Array.au3>
Local $array_datejour[0]
$array = _FileListToArrayRec (@UserProfileDir,"*.xlsx", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
If @error Then Exit MsgBox(16,"Erreur",@ScriptLineNumber &" => @extended "& @extended)
_ArrayDisplay($array)
_ArrayColInsert($array,1)
For $i = 1 To $array[0][0]
$info = StringLeft(FileGetTime($array[$i][0],0,1),8) ;return a string YYYYMMDD supprimé (HHMMSS)
$array[$i][1] = $info
;========== autre possibilité =====================
If $info = @YEAR & @MON & @MDAY Then
_ArrayAdd($array_datejour,$array[$i][0])
EndIf
Next
If UBound($array_datejour) = 0 Then Exit MsgBox(16,"Erreur","Pas de fichier à la date du jour")
_ArrayDisplay($array,"tous les Excels et dates")
_ArrayDisplay($array_datejour,"date du jour")
;================================================================================
Local $olMailItem = 0
Local $olFormatRichText = 3
Local $olImportanceLow = 0
Local $olImportanceNormal = 1
Local $olImportanceHigh = 2
Local $olByValue = 1
Local $olFormatHTML = 2
Local $olFormatPlain = 1
Local $to = "monadress@mail.fr"
Local $subj = "test " & @MDAY &"-"& @MON &"-"& @YEAR &" "& @HOUR &" "& @MIN
$oOApp = ObjCreate("Outlook.Application")
If @error Then Exit MsgBox(16,"Erreur",@ScriptLineNumber)
$oOMail = $oOApp.CreateItem ($olMailItem)
$myAttachments = $oOMail.Attachments
$oOMail.Save
$oOMail.To = ($to)
$oOMail.Subject = $subj
$oOMail.BodyFormat = $olFormatHTML
$oOMail.Importance = $olImportanceNormal
$oOMail.HTMLBody = "ca marche"
For $i = 0 To UBound($array_datejour) - 1
$oOMail.Attachments.add($array_datejour[$i])
Next
$oOMail.Send
$oOApp = 0
Re: outlook envoi de pieces jointes à la date du jour
Posté : dim. 28 oct. 2018 17:02
par yohanb767
Merci Walkson , je n'aurai jamais trouvé
je vais décortiquer le code pour en apprendre plus mais cela me va parfaitement
merci encore et bonne soirée
Re: outlook envoi de pieces jointes à la date du jour
Posté : dim. 28 oct. 2018 20:09
par walkson
J'ai simplifié la première partie du code et j'ai personnalisé le "body"
Code : Tout sélectionner
#include <File.au3>
#include <Array.au3>
Local $array_datejour[0]
$array = _FileListToArrayRec (@UserProfileDir,"*.xlsx", $FLTAR_FILES ,$FLTAR_RECUR,$FLTAR_NOSORT,$FLTAR_FULLPATH );le file, récursive, pas de trie, chemin complet
If @error Then Exit MsgBox(16,"Erreur",@ScriptLineNumber &" => @extended "& @extended)
_ArrayDisplay($array)
Local $classeur
Local $NBclasseur = 0
For $i = 1 To $array[0]
$info = StringLeft(FileGetTime($array[$i],0,1),8) ;return a string YYYYMMDD supprimé (HHMMSS)
If $info = @YEAR & @MON & @MDAY Then
_ArrayAdd($array_datejour,$array[$i])
$classeur &= StringRegExpReplace($array[$i], "(.*[\\]+)", "") & "<br>" ;récupère le nom du classeur sans le chemin
$NBclasseur += 1
EndIf
Next
If UBound($array_datejour) = 0 Then Exit MsgBox(16,"Erreur","Pas de fichier à la date du jour")
_ArrayDisplay($array_datejour,"date du jour")
;================================================================================
$body = "<body>" & _
'<big style="color: rgb(51, 51, 255);">Bonjour,<br>' & _
"Je vous souhaite bonne réception des " & $NBclasseur & " classeurs Excel de ce jour:<br>" & $classeur & _
'Cordialement<br>yohanb767<br><br>' & _
'<img style="width: 128px; height: 96px;" alt="image" src="https://www.autoitscript.com/autoit3/files/graphics/I_Love_AutoIt_2.gif"></big></body>'
Local $olMailItem = 0
Local $olFormatRichText = 3
Local $olImportanceLow = 0
Local $olImportanceNormal = 1
Local $olImportanceHigh = 2
Local $olByValue = 1
Local $olFormatHTML = 2
Local $olFormatPlain = 1
Local $to = "monadress@mail.fr"
Local $subj = "test " & @MDAY &"-"& @MON &"-"& @YEAR &" "& @HOUR &" "& @MIN
$oOApp = ObjCreate("Outlook.Application")
If @error Then Exit MsgBox(16,"Erreur",@ScriptLineNumber)
$oOMail = $oOApp.CreateItem ($olMailItem)
$myAttachments = $oOMail.Attachments
$oOMail.Save
$oOMail.To = ($to)
$oOMail.Subject = $subj
$oOMail.BodyFormat = $olFormatHTML
$oOMail.Importance = $olImportanceNormal
$oOMail.HTMLBody = $body
For $i = 0 To UBound($array_datejour) - 1
$oOMail.Attachments.add($array_datejour[$i])
Next
;$oOMail.Send ;envoie
$oOMail.Display ;affiche
$oOApp = 0
Re: outlook envoi de pieces jointes à la date du jour
Posté : dim. 28 oct. 2018 21:57
par yohanb767
merci encore Walkson