Macro pour envoyer automatiquement un mail via Thunderbird

  • Initiateur de la discussion Initiateur de la discussion benadry
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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.
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
  • Question Question
Microsoft 365 Macro VBA
Réponses
2
Affichages
554
Réponses
1
Affichages
1 K
Retour