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

Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Dernière intervention
20 décembre 2009
- 5 juil. 2007 à 21:17 - Dernière réponse :
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
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. 
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 7 juil. 2007 à 19:33
3
Merci
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

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_MPi
Meilleure réponse
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Dernière intervention
20 décembre 2009
- 7 juil. 2007 à 21:01
3
Merci
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

Merci arundel 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de arundel
Meilleure réponse
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 8 juil. 2007 à 16:11
3
Merci
Dans quel environnement tu développes ?
Excel ? Word ?  (VBA)
ou VB6 ?

MPi

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de cs_MPi
Meilleure réponse
Messages postés
8
Date d'inscription
dimanche 27 mars 2005
Dernière intervention
20 décembre 2009
- 8 juil. 2007 à 16:26
3
Merci
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.

Merci arundel 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

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

Encore merci et A+..
Commenter la réponse de arundel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.