Envoi auto d'un mail avec un body formaté

Résolu
arundel Messages postés 8 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 20 décembre 2009 - 5 juil. 2007 à 21:17
arundel Messages postés 8 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 20 décembre 2009 - 8 juil. 2007 à 17:38
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

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
7 juil. 2007 à 19:33
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
3
arundel Messages postés 8 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 20 décembre 2009
7 juil. 2007 à 21:01
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
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 juil. 2007 à 16:11
Dans quel environnement tu développes ?
Excel ? Word ?  (VBA)
ou VB6 ?

MPi
3
arundel Messages postés 8 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 20 décembre 2009
8 juil. 2007 à 16:26
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.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 juil. 2007 à 17:11
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
0
arundel Messages postés 8 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 20 décembre 2009
8 juil. 2007 à 17:38
Je me renseigne et je mets un mot si je trouve qq'chose qui mérite diffusion.

Encore merci et A+..
0
Rejoignez-nous