outlook envoi de pieces jointes à la date du jour

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

outlook envoi de pieces jointes à la date du jour

#1

Message 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
Modifié en dernier par walkson le dim. 28 oct. 2018 14:54, modifié 1 fois.
Raison : Utilisation des bonnes balises pour une meilleure visibilité
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: outlook envoi de pieces jointes à la date du jour

#2

Message 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
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Re: outlook envoi de pieces jointes à la date du jour  

#3

Message 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
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1020
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: outlook envoi de pieces jointes à la date du jour

#4

Message 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


Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
yohanb767
Niveau 5
Niveau 5
Messages : 117
Enregistré le : mer. 28 déc. 2016 14:09
Status : Hors ligne

Re: outlook envoi de pieces jointes à la date du jour

#5

Message par yohanb767 »

merci encore Walkson
Répondre