Envoi auto d'un mail avec un body formaté [Résolu]

Signaler
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
20 décembre 2009
-
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
20 décembre 2009
-
Bonjour à tous,

J'ai trouvé de nombreuses solutions à l'envoi de mails avec ou sans pièce jointe en Excel-VBA, le corps du message étant soit en dur soit contenu dans un fichier texte récupéré via FSO. Dans les 2 cas le texte du body est non formaté.
Ce que je cherche c'est un principe de solution permettant d'avoir un corps de message formaté (couleur, soulignement, etc ...)
par exemple à partir d'un message-modèle (en Word ou en Mozilla par exemple).

Auriez-vous une idée ? Je vous en saurais gré le cas échéant. 

6 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Essaie d'utiliser HTMLBody plutôt que Body, si tu passes par des objets Outlook

Il faudrait savoir aussi quel est le programme de courriel que tu utilises.

Si tu veux utiliser le programme par défaut, regarde du côté de ShellExecute
Il faudra tout de même que le body soit en HTML pour pouvoir utiliser les couleurs et polices particulières

MPi
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
20 décembre 2009

Bonjour MPi,

Suite à ton conseil :
- j'ai créé un fichier d'essai .htm avec Word
- j'ai alimenté la propriété .HTMLBody avec le nom complet de ce fichier

Résultat : le message contient le nom complet du fichier au lieu de son contenu (?!)

Autrement j'utilise Mozilla / Thunderbird comme pgm de courriel.

Ci-après le code d'envoi. Il y a peut-être un meilleur procédé ?

------------------------------------------------------------------------------------------------------------------------

Sub Send_Mail(strDest, strExp, strBody)



Dim objMsg As Object, objConf As Object
Dim objFlds As Variant



Set objConf = CreateObject("CDO.Configuration")
objConf.Load -1 ' CDO Source Defaults
Set objFlds = objConf.Fields
With objFlds
 .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.free.fr"
 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
 .Update
End With



Set objMsg = CreateObject("CDO.Message")
With objMsg
 'Construction du message
 Set .Configuration = objConf
 .To = strDest
 .from = strExp
 .Subject = "Essai envoi mail"
 .HTMLbody = strBody
    
 'Envoi du message
 .Send
End With



Set objMsg = Nothing
Set objConf = Nothing



MsgBox "Terminé"



End Sub
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Dans quel environnement tu développes ?
Excel ? Word ?  (VBA)
ou VB6 ?

MPi
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
20 décembre 2009

Bonjour,
Je développe en VBA Excel et mon Body est en Word.
J'ai avancé et compris mon erreur : il faut charger le contenu du texte Word préalablement converti en format HTML et non simplement donner le nom du fichier .doc. Et ça marche !

Maintenant je rencontre des difficultés à l'affichage sous Thunderbird :
- les couleurs sont modifiées aléatoirement
- il faut remplacer les espaces entre mots par des espaces insécables sinon certains mots sont collés
- si je fais un formulaire avec des boutons radio, à l'affichage ils apparaissent comme des boutons de commande "Effacer"
- etc ...
bref c'est plein de surprises alors qu'avec IE ça semble mieux fonctionner.

A ton avis, y aurait-il des règles de génération HTML propres à chaque client de messagerie ?

Merci d'avance.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Je ne connais pas tous les tags HTML, mais je sais que dans certains cas, j'ai dû remplacer les sauts de lignes vbCrLf   par   %0A
Là, tu parles de contrôles (?) et je ne peux rien pour toi de ce côté...

Avec une recherche sur le Net, tu pourras certainement trouver un site dédié au HTML où tous les tags sont détaillés... En principe, si tu utilises le HTML "officiel", ça devrait fonctionner pour tous les programmes... sauf peut-être pour les applications Microsoft qui crée ses propres normes (?)

MPi
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
20 décembre 2009

Je me renseigne et je mets un mot si je trouve qq'chose qui mérite diffusion.

Encore merci et A+..