Macro pour envoyer automatiquement un mail via Thunderbird

benadry

XLDnaute Occasionnel
Bonjour,

Je suis en train d'élaborer une macro pour envoyer automatiquement un mail via Thunderbird.

J'ai trouvé quelque chose sur un forum, que j'ai adapté, mais je bloque sur quelques points.

Voici le code :

Code:
Sub EnvoiMail()
Dim destinataire1, destinataire2, destinataire3, destinataire4, destinataire5, destinataire6, cc, body, sujet, strcommand, fichierjoint As String

destinataire1 = "tota.tata@XXX.fr,titi.toto@XXX.fr"
destinataire2 = "XXX"
destinataire3 = "XXX"
destinataire4 = "XXX"
destinataire6 = "XXX"
cc = "tutu.tete@XXX.fr,tata.tutu@XXX.fr"
sujet = "Relances"
 
body = "Bonjour," & vbLf & "A ce jour, et sauf erreur de notre part, nous n'avons toujours pas reçu la copie de la notification des dettes concernant votre Centre, mentionnés dans le tableau ci-joint." & vbLf & "Nous vous remercions de nous transmettre ces documents dans les meilleurs délais." & vbLf & vbLf & vbLf & "Cordialement." & vbLf & vbLf & vbLf & vbLf & "Le Service Comptabilité"
fichierjoint = "G:\CPT\Suivi des Créances\Relances - Centre A - 12_07_2013.pdf"
 
strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
strcommand = strcommand & " -compose " & "to='" & destinataire1 & "cc='" & cc & "'"
strcommand = strcommand & "," & "subject=" & sujet & ","
strcommand = strcommand & "body=" & body
strcommand = strcommand & "," & "attachment=file:///" & fichierjoint

 
Call Shell(strcommand, vbNormalFocus)
 
End Sub

Voici mes problèmes :
1°) avec le code ci-dessus, je n'arrive pas à envoyer le message à des destinataires en "cc". Il me colle le dernier destinataire au premier "cc" de la façon suivante : titi.toto"@XXX.frcc='tutu.tete@XXX.fr, avec les " et ' exactement comme je les ai placés. Il y a donc une erreur de syntaxe, mais je ne vois pas laquelle.

2°) Le corps du message n'est pas affiché : je n'ai que le "Bonjour", sans la virgule qui le suit et sans le reste du texte. Cela vient sans doute de la définition de la variable "body", mais je ne vois pas comment faire.

3°) Le fichier joint n'est pas accessible, alors qu'il est recopié exactement comme il devrait l'être.


En outre, mais je verrai après (je souhaite déjà faire fonctionner la première partie), je souhaite que si la pièce jointe concerne le "Centre A", le mail soit envoyé aux destinataires 1, ainsi qu'aux "cc", idem pour les centres B à F avec les destinataires 2 à 6 et les "cc".
Je n'y ai pas encore réfléchi, mais peut-être qu'avec une série de "if" ?

Merci d'avance pour votre aide.


Cordialement.
 

benadry

XLDnaute Occasionnel
Re : Macro pour envoyer automatiquement un mail via Thunderbird

Rebonjour,


J'ai réfléchi s'agissant de :

PHP:
En outre, mais je verrai après (je souhaite déjà faire fonctionner la première partie), je souhaite que si la pièce jointe concerne le "Centre A", le mail soit envoyé aux destinataires 1, ainsi qu'aux "cc", idem pour les centres B à F avec les destinataires 2 à 6 et les "cc".
Je n'y ai pas encore réfléchi, mais peut-être qu'avec une série de "if" ?

Finalement, j'ai créé un bouton dans chacun des six onglets Centre, lequel bouton appellera la macro d'envoi de mail adaptée. Il y aura donc six macros différentes avec des destinataires différents et des pièces jointes différentes selon les centres. Je pense que ce sera plus facile et bien plus pratique pour l'utilisateur.

En revanche, je bloque toujours sur les 3 points ci-dessus.

Merci d'avance pour votre aide.


Cordialement.
 

benadry

XLDnaute Occasionnel
Re : Macro pour envoyer automatiquement un mail via Thunderbird

Rebonjour le forum,

En bidouillant, j'ai réussi à régler mon premier problème. Voici le code, si ça peut intéresser quelqu'un :

Code:
strcommand = "C:\Program Files\Mozilla Thunderbird\thunderbird"
strcommand = strcommand & " -compose " & "to='" & destinataire1 & "'"
strcommand = strcommand & "," & "cc='" & cc & "'"
strcommand = strcommand & "," & "subject=" & sujet & ","
strcommand = strcommand & "body=" & body
strcommand = strcommand & "," & "attachment=file:///" & fichierjoint

Pour le deuxième problème, je sèche toujours !!

Pour le troisième, il y a un paramètre supplémentaire. En effet, le nom du fichier varie en fonction du centre (qui donne son nom à la feuille) et de la date du jour. J'ai donc indiqué ceci (a priori, c'est bon, puisque je me sers du même code pour donner un nom au fichier pdf que je génère) :

Code:
fichierjoint = "G:\CPT\Suivi des Créances\" & ActiveSheet.Name & " - " & Format(Now, "dd/mm/yyyy") & ".pdf"

et ça ne marche pas ! Un fichier est bien joint, mais il ne comporte que le premier mot du nom de la feuille active et pas d'extension (Relances, en l'occurrence, sans rien de plus).

A vous lire.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm