Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

envoi d'un mail HTML avec CDO

2 réponses
Avatar
François
Bonjour,
J'écris un programme pour envoyer des mails en format HTML.
Voici mon code (trouvé sur le net)
Private Sub Command14_Click()
Const PR_BODY = &H10130102
Const PR_BODY_HTML = &H1013001E
Const PR_SECURITY = &H340003
Const SECURITY_SIGNED = 1
Const SECURITY_ENCRYPTED = 2

Dim objNS As MAPI.Session
Dim objMail As MAPI.Message
Dim objRcp As MAPI.Recipient
Dim MapiAttachment As MAPI.Attachment
Dim Message As Variant
Dim From, Subject, CC, BCC, ToDest, HtmlFile As String
Dim Cpt As Integer

From = "Nom du serveur Exchange" & vbLf & "Nom de la Mailbox"
ToDest = "adresseemail@destination"
HtmlFile = "chemin du fichier HTML"

Set objNS = CreateObject("MAPI.Session")

objNS.Logon profileinfo:=From
Set objMail = objNS.Outbox.Messages.Add
Set objRcp = objMail.Recipients.Add(ToDest)
objRcp.Resolve

objMail.Subject = "TEST"
' La fonction GettextFromHTMLFile ouvre le fichier html pour extraire le
code source
objMail.Fields.Add PR_BODY_HTML, GettextFromHTMLFile(HtmlFile)
objMail.Fields.Add PR_SECURITY, SECURITY_SIGNED

objMail.Update
objMail.Send

objNS.Logoff

Set objRcp = Nothing
Set objNS = Nothing
End Sub

Cela fonctionne bien sur le reseau interne mais une fois que je veux envoyer
le mail vers une mailbox gmail, hotmail, ... le mail n'est plus en format
HTML.

Je suis en vb6 et le serveur Exchange est en 2000.
Je suppose que le problème est niveau du serveur exchange vu que le mail
généré et envoyé est bien en format HTML (vérification dans outlook dans les
éléments envoyé).
Pourriez vous m'aider svp ?

Merci ;-)

2 réponses

Avatar
David Rousset [MS]
Bonjour,

CDO 1.21 (que vous utilisez dans votre code) ne permet pas gérer le
HTML. Ce n'est pas supporté comme confirmé par cet article:
http://support.microsoft.com/kb/268440/en-us

Utilisez à la place CDOSYS (Windows 2000 & 2003) ou CDONTS (NT 4.0) pour
envoyer des emails en HTML. Voici un exemple de code:
http://support.microsoft.com/kb/189945/en-us &
http://support.microsoft.com/kb/286431/en-us

Bye,
--
David Rousset
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.

"François" a écrit dans le message de
news:
Bonjour,
J'écris un programme pour envoyer des mails en format HTML.
Voici mon code (trouvé sur le net)
Private Sub Command14_Click()
Const PR_BODY = &H10130102
Const PR_BODY_HTML = &H1013001E
Const PR_SECURITY = &H340003
Const SECURITY_SIGNED = 1
Const SECURITY_ENCRYPTED = 2

Dim objNS As MAPI.Session
Dim objMail As MAPI.Message
Dim objRcp As MAPI.Recipient
Dim MapiAttachment As MAPI.Attachment
Dim Message As Variant
Dim From, Subject, CC, BCC, ToDest, HtmlFile As String
Dim Cpt As Integer

From = "Nom du serveur Exchange" & vbLf & "Nom de la Mailbox"
ToDest = ""
HtmlFile = "chemin du fichier HTML"

Set objNS = CreateObject("MAPI.Session")

objNS.Logon profileinfo:=From
Set objMail = objNS.Outbox.Messages.Add
Set objRcp = objMail.Recipients.Add(ToDest)
objRcp.Resolve

objMail.Subject = "TEST"
' La fonction GettextFromHTMLFile ouvre le fichier html pour extraire
le
code source
objMail.Fields.Add PR_BODY_HTML, GettextFromHTMLFile(HtmlFile)
objMail.Fields.Add PR_SECURITY, SECURITY_SIGNED

objMail.Update
objMail.Send

objNS.Logoff

Set objRcp = Nothing
Set objNS = Nothing
End Sub

Cela fonctionne bien sur le reseau interne mais une fois que je veux
envoyer
le mail vers une mailbox gmail, hotmail, ... le mail n'est plus en format
HTML.

Je suis en vb6 et le serveur Exchange est en 2000.
Je suppose que le problème est niveau du serveur exchange vu que le mail
généré et envoyé est bien en format HTML (vérification dans outlook dans
les
éléments envoyé).
Pourriez vous m'aider svp ?

Merci ;-)





Avatar
François
Merci bcp ...
Pourtant le code fonctionne à partir de mon pc privé (code pop3 pour envoyer
le mail).
J'ai essayé autrement comme indiquer dans l'article : 286431
Mais j'ai un message d'erreur :
The message could not sent to smtp server. The transport error code was
0x800ccc15. The server response was not available.

Autre question, lors de la configuration pour l'envoi du mail, à quoi
correspont :
http://schemas.microsoft.com ....

Merci


"David Rousset [MS]" a écrit :

Bonjour,

CDO 1.21 (que vous utilisez dans votre code) ne permet pas gérer le
HTML. Ce n'est pas supporté comme confirmé par cet article:
http://support.microsoft.com/kb/268440/en-us

Utilisez à la place CDOSYS (Windows 2000 & 2003) ou CDONTS (NT 4.0) pour
envoyer des emails en HTML. Voici un exemple de code:
http://support.microsoft.com/kb/189945/en-us &
http://support.microsoft.com/kb/286431/en-us

Bye,
--
David Rousset
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.

"François" a écrit dans le message de
news:
> Bonjour,
> J'écris un programme pour envoyer des mails en format HTML.
> Voici mon code (trouvé sur le net)
> Private Sub Command14_Click()
> Const PR_BODY = &H10130102
> Const PR_BODY_HTML = &H1013001E
> Const PR_SECURITY = &H340003
> Const SECURITY_SIGNED = 1
> Const SECURITY_ENCRYPTED = 2
>
> Dim objNS As MAPI.Session
> Dim objMail As MAPI.Message
> Dim objRcp As MAPI.Recipient
> Dim MapiAttachment As MAPI.Attachment
> Dim Message As Variant
> Dim From, Subject, CC, BCC, ToDest, HtmlFile As String
> Dim Cpt As Integer
>
> From = "Nom du serveur Exchange" & vbLf & "Nom de la Mailbox"
> ToDest = ""
> HtmlFile = "chemin du fichier HTML"
>
> Set objNS = CreateObject("MAPI.Session")
>
> objNS.Logon profileinfo:=From
> Set objMail = objNS.Outbox.Messages.Add
> Set objRcp = objMail.Recipients.Add(ToDest)
> objRcp.Resolve
>
> objMail.Subject = "TEST"
> ' La fonction GettextFromHTMLFile ouvre le fichier html pour extraire
> le
> code source
> objMail.Fields.Add PR_BODY_HTML, GettextFromHTMLFile(HtmlFile)
> objMail.Fields.Add PR_SECURITY, SECURITY_SIGNED
>
> objMail.Update
> objMail.Send
>
> objNS.Logoff
>
> Set objRcp = Nothing
> Set objNS = Nothing
> End Sub
>
> Cela fonctionne bien sur le reseau interne mais une fois que je veux
> envoyer
> le mail vers une mailbox gmail, hotmail, ... le mail n'est plus en format
> HTML.
>
> Je suis en vb6 et le serveur Exchange est en 2000.
> Je suppose que le problème est niveau du serveur exchange vu que le mail
> généré et envoyé est bien en format HTML (vérification dans outlook dans
> les
> éléments envoyé).
> Pourriez vous m'aider svp ?
>
> Merci ;-)
>
>
>