FONCTION ENVOI DE MAIL PAR VBA SANS CLIENT LOCAL, PAR SERVEUR SMTP

Signaler
Messages postés
10
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
30 mars 2010
-
siinoxcodeS
Messages postés
5
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
22 février 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45594-fonction-envoi-de-mail-par-vba-sans-client-local-par-serveur-smtp

siinoxcodeS
Messages postés
5
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
22 février 2012

Ah je pensais que les messages que j'avais laissé auparavant n'avaient pas fonctionné.
Merci à toi JB2718, grâce à toi tout marche.
Pour la signature j'ai trouvé une solution, en rajoutant un paramètre signature à la fonction qui me renvoie le chemin d'accès de l'image (car l'utilisateur choisi sa signature) :

Cette ligne pour récupérer juste le nom et l'extension de l'image :
NomSignature = Replace(pstrSignature, "C:\signatures", "")

strHTML = "<html>" & pstrCorps & "

</html>"
objEmail.HtmlBody = strHTML
objEmail.AddRelatedBodyPart pstrSignature, NomSignature, cdoRefTypeId

Ceci fonctionne malheureusement uniquement sur l'ordinateur.
En vérifiant l'email de chez moi, l'image n'apparait pas (petite croix).

Je pensais alors créer un fichier html affichant l'image, et l'utiliser dans le code comme ceci :
CreateMHTMLBody("file://" & CheminFichierHTML)
Mais j'arrive au mieux à aficher le code du fichier HTML dans le message mais pas le contenu..

Si quelqu'un a une idée.
siinoxcodeS
Messages postés
5
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
22 février 2012

Bonjour à tous,
Je suis actuellement en stage et je me sers de cette fonction qui est parfaite en tout point, seulement j'aimerai savoir si il serait possible d'ajouter une signature au mail ?
Merci d'avance
jb2718
Messages postés
3
Date d'inscription
mardi 10 mai 2011
Statut
Membre
Dernière intervention
8 février 2012

Bonjour

Pour l'envoi à plusieurs destinataires, il suffit de les indiquer en séquence en les séparant par des points-virgules.
Exemple "jean.dupont@sfr.fr;alfred.durand@free.fr"

Cordialement

PS - pour l'envoi en copie cachée vous auriez pu ajouter un paramètre suplémentaire au lieu de le substituer à objEmail.To
Pour ma part j'ai généralisé la fonction de la façon suivante :

Public Function SMTPSendMail(Emetteur As String, _
Dest As String, _
Optional Cc As String, _
Optional CCi As String, _
Optional Objet As String, _
Optional Texte As String, _
Optional Pj As Variant _
) As Boolean

[...]

objMessage.From = Emetteur
objMessage.To = Dest
objMessage.Cc = Cc
objMessage.BCC = CCi
objMessage.Subject = Objet
objMessage.TextBody = Texte
siinoxcodeS
Messages postés
5
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
22 février 2012

En fait, pour le Bcc c'est bon, j'avais pas pensé à regarder si une méthode existé déjà, il suffit simplement de remplacer objEmail.To = pstrTo
par : objEmail.BCC = pstrTo

J'avais déjà réussi à envoyer plusieurs pièces jointes en passant par un array, est-ce la même procédure pour les destinataires ?