OVH Cloud OVH Cloud

Pb d'integration htm par cdo

35 réponses
Avatar
yannick
Bonjour,
j'utilise la methode cdo de Pierre du lien
http://www.3stone.be/access/articles.php?lng=fr&pg=89 pour envoyer mes mails

j'ai ajouter dans la fonction SendMailCDO l'argument HTMLBody.
Puis quand j'appele la fonction lorsque je mes HTMLBody= "c:\mailing\test.htm"

quand je reçois ce mail dans le corps du message il me met
c:\mailing\test.htm et je voudrais qu'il integre le fichier htm.

Quelqu'un aurait il une idée?

Merci

Yannick

10 réponses

1 2 3 4
Avatar
yannick
c'est vachement sympa de prendre du temps pour moi,
je suis en train de tester et j'ai l'erreur: la valeur de configuration
sendusinfg est non valide, il bloque sur .send
@+
Yannick



oups j'ai oublié de simplifier la ligne If InStr(1, CorpsHTML("E:Mes documentsfiche1.htm"), "<HTML>") > 0
donc je reposte le code complet corrigé :



Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)

Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")

With Cdo_Message
..To = Receiver
..From = Sender
..Subject = Subject
..Cc = Cc
..Bcc = Bcc

If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

..send
End With

Set Cdo_Message = Nothing
End Function



Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function



Sub test()
SendMailCDO "", "", "message envoyé par CDO", CorpsHTML("E:Mes
Documentsmonfichier.htm"), "", ""
End Sub



--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------





Avatar
Eric
re,

Il ne manquerait pas cette ligne ?
Set Cdo_Message.Configuration = GetSMTPServerConfig()
sous
Set Cdo_Message = CreateObject("CDO.Message")


c'est vachement sympa de prendre du temps pour moi,
je suis en train de tester et j'ai l'erreur: la valeur de configuration
sendusinfg est non valide, il bloque sur .send
@+
Yannick




oups j'ai oublié de simplifier la ligne If InStr(1, CorpsHTML("E:Mes documentsfiche1.htm"), "<HTML>") > 0
donc je reposte le code complet corrigé :



Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)

Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")

With Cdo_Message
..To = Receiver
..From = Sender
..Subject = Subject
..Cc = Cc
..Bcc = Bcc

If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

..send
End With

Set Cdo_Message = Nothing
End Function



Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function



Sub test()
SendMailCDO "", "", "message envoyé par CDO", CorpsHTML("E:Mes
Documentsmonfichier.htm"), "", ""
End Sub



--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
yannick
excuses c'etais ca,
donc maintenant je n'ai plus de message d'erreur
quand je reçois le mail j'ai bien dans le corps quelque chose mais qui ne
resemble à rien , un petit ex: <html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document> <meta name=Generator
content="Microsoft Word 11"> <meta name=Originator content="Microsoft Word
11"> <link rel=File-List href="mailing_fichiers/filelist.xml">
<title>Salut test d'envoi d'email</title> <!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>user</o:Author>
<o:LastAuthor>user</o:LastAuthor>
<o:Revision>1</o:Revision>
<o:TotalTime>1</o:TotalTime>
<o:Created>2006-05-03T07:42:00Z</o:Created>
<o:LastSaved>2006-05-03T07:43:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>4</o:Words>
<o:Characters>23</o:Characters>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>26</o:CharactersWithSpaces>
<o:Version>11.5606</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:HyphenationZone>21</w:HyphenationZone>

etc...
un probleme detranscription sans doute dous cela viens ?

Merci

Yannick




re,

Il ne manquerait pas cette ligne ?
Set Cdo_Message.Configuration = GetSMTPServerConfig()
sous
Set Cdo_Message = CreateObject("CDO.Message")


c'est vachement sympa de prendre du temps pour moi,
je suis en train de tester et j'ai l'erreur: la valeur de configuration
sendusinfg est non valide, il bloque sur .send
@+
Yannick




oups j'ai oublié de simplifier la ligne If InStr(1, CorpsHTML("E:Mes documentsfiche1.htm"), "<HTML>") > 0
donc je reposte le code complet corrigé :



Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)

Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")

With Cdo_Message
..To = Receiver
..From = Sender
..Subject = Subject
..Cc = Cc
..Bcc = Bcc

If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

..send
End With

Set Cdo_Message = Nothing
End Function



Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function



Sub test()
SendMailCDO "", "", "message envoyé par CDO", CorpsHTML("E:Mes
Documentsmonfichier.htm"), "", ""
End Sub



--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
yannick
le texte est en texte brut et non en html, j'ai beau mettre BodyFormat mais
il ne reconnais pas cette arguments.



excuses c'etais ca,
donc maintenant je n'ai plus de message d'erreur
quand je reçois le mail j'ai bien dans le corps quelque chose mais qui ne
resemble à rien , un petit ex: <html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document> <meta name=Generator
content="Microsoft Word 11"> <meta name=Originator content="Microsoft Word
11"> <link rel=File-List href="mailing_fichiers/filelist.xml">
<title>Salut test d'envoi d'email</title> <!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>user</o:Author>
<o:LastAuthor>user</o:LastAuthor>
<o:Revision>1</o:Revision>
<o:TotalTime>1</o:TotalTime>
<o:Created>2006-05-03T07:42:00Z</o:Created>
<o:LastSaved>2006-05-03T07:43:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Words>4</o:Words>
<o:Characters>23</o:Characters>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>26</o:CharactersWithSpaces>
<o:Version>11.5606</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:HyphenationZone>21</w:HyphenationZone>

etc...
un probleme detranscription sans doute dous cela viens ?

Merci

Yannick




re,

Il ne manquerait pas cette ligne ?
Set Cdo_Message.Configuration = GetSMTPServerConfig()
sous
Set Cdo_Message = CreateObject("CDO.Message")


c'est vachement sympa de prendre du temps pour moi,
je suis en train de tester et j'ai l'erreur: la valeur de configuration
sendusinfg est non valide, il bloque sur .send
@+
Yannick




oups j'ai oublié de simplifier la ligne If InStr(1, CorpsHTML("E:Mes documentsfiche1.htm"), "<HTML>") > 0
donc je reposte le code complet corrigé :



Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)

Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")

With Cdo_Message
..To = Receiver
..From = Sender
..Subject = Subject
..Cc = Cc
..Bcc = Bcc

If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

..send
End With

Set Cdo_Message = Nothing
End Function



Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function



Sub test()
SendMailCDO "", "", "message envoyé par CDO", CorpsHTML("E:Mes
Documentsmonfichier.htm"), "", ""
End Sub



--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







Avatar
Eric
oui tu récupéres la source de ton fichier htm créé sous Word donc tout
le code.

Avec ma manière de lire le fichier Input(lof(f),#F) tu récupères tout le
contenu du fichier avec les sauts de ligne.
Essaies avec la méthode proposée par Arnaud car tu n'auras pas les sauts
de ligne et peut-être que dans ce cas c'est interprété differemment donc
remplaces

CorpsHTML = Input(LOF(F), #F)

par

Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop



excuses c'etais ca,
donc maintenant je n'ai plus de message d'erreur
quand je reçois le mail j'ai bien dans le corps quelque chose mais qui ne
resemble à rien , un petit ex: <html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40"> ...



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
yannick
actuellement j'utilise la methode de arnaud;
Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)
Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")
Set Cdo_Message.Configuration = GetSMTPServerConfig()
With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

.Send
End With

Set Cdo_Message = Nothing
End Function

Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function

Sub test()
SendMailCDO "", "", "message
envoyé par CDO", CorpsHTML("c:mailingmailing.htm"), "", ""
End Sub

mais rien a faire il est en texte brut .
@+
Yannick


oui tu récupéres la source de ton fichier htm créé sous Word donc tout
le code.

Avec ma manière de lire le fichier Input(lof(f),#F) tu récupères tout le
contenu du fichier avec les sauts de ligne.
Essaies avec la méthode proposée par Arnaud car tu n'auras pas les sauts
de ligne et peut-être que dans ce cas c'est interprété differemment donc
remplaces

CorpsHTML = Input(LOF(F), #F)

par

Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop



excuses c'etais ca,
donc maintenant je n'ai plus de message d'erreur
quand je reçois le mail j'ai bien dans le corps quelque chose mais qui ne
resemble à rien , un petit ex: <html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40"> ...



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
remplaces dans Function CorpsHTML(strFile As String) As String

CorpsHTML = Input(LOF(F), #F)


par :
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop

Car je pense que ce sont les caracteres Chr(13) & chr(10) qui font que
c'est mal interprété. Ceux-ci sont récupérés par Input(LOF(F), #F)


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
yannick
meme en remplacant
CorpsHTML = Input(LOF(F), #F)

par

Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
j'ai toujours un texte brut

j'ai trouvé quelque chose sur le site de Raymond
http://officesystem.access.free.fr/olbodyformat.htm
j'ai essaye de l'applique mais je n'arrive pas à le faire fonctionné par cdo


@+

Yannick




actuellement j'utilise la methode de arnaud;
Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)
Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")
Set Cdo_Message.Configuration = GetSMTPServerConfig()
With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

.Send
End With

Set Cdo_Message = Nothing
End Function

Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function

Sub test()
SendMailCDO "", "", "message
envoyé par CDO", CorpsHTML("c:mailingmailing.htm"), "", ""
End Sub

mais rien a faire il est en texte brut .
@+
Yannick


oui tu récupéres la source de ton fichier htm créé sous Word donc tout
le code.

Avec ma manière de lire le fichier Input(lof(f),#F) tu récupères tout le
contenu du fichier avec les sauts de ligne.
Essaies avec la méthode proposée par Arnaud car tu n'auras pas les sauts
de ligne et peut-être que dans ce cas c'est interprété differemment donc
remplaces

CorpsHTML = Input(LOF(F), #F)

par

Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop



excuses c'etais ca,
donc maintenant je n'ai plus de message d'erreur
quand je reçois le mail j'ai bien dans le corps quelque chose mais qui ne
resemble à rien , un petit ex: <html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40"> ...



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
Eric
.../...
non par ça sinon c'est recursif
Dim strContenu as string, txtLigne as string
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
Loop
CorpsHTML=strContenu

remplaces dans Function CorpsHTML(strFile As String) As String

CorpsHTML = Input(LOF(F), #F)



par :
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop

Car je pense que ce sont les caracteres Chr(13) & chr(10) qui font que
c'est mal interprété. Ceux-ci sont récupérés par Input(LOF(F), #F)




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Eric
Ca confirme ce que je te disais, c'est dû au retour chariot - saut de
ligne donc regardes mais 2 post précédents où je te dis ce qu'il faut
remplacer et par quoi, mais pour le remplacement prends le contenu du
2eme post Do While not ... Loop

meme en remplacant

CorpsHTML = Input(LOF(F), #F)

par

Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop


j'ai toujours un texte brut
j'ai trouvé quelque chose sur le site de Raymond
http://officesystem.access.free.fr/olbodyformat.htm
j'ai essaye de l'applique mais je n'arrive pas à le faire fonctionné par cdo


@+

Yannick





actuellement j'utilise la methode de arnaud;
Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String)
Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")
Set Cdo_Message.Configuration = GetSMTPServerConfig()
With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
If InStr(1, BodyText, "<HTML>") > 0 Then
.HTMLBody = BodyText
Else
.TextBody = BodyText
End If

.Send
End With

Set Cdo_Message = Nothing
End Function

Function CorpsHTML(strFile As String) As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
CorpsHTML = Input(LOF(F), #F)
Close #F
End Function

Sub test()
SendMailCDO "", "", "message
envoyé par CDO", CorpsHTML("c:mailingmailing.htm"), "", ""
End Sub

mais rien a faire il est en texte brut .
@+
Yannick



oui tu récupéres la source de ton fichier htm créé sous Word donc tout
le code.

Avec ma manière de lire le fichier Input(lof(f),#F) tu récupères tout le
contenu du fichier avec les sauts de ligne.
Essaies avec la méthode proposée par Arnaud car tu n'auras pas les sauts
de ligne et peut-être que dans ce cas c'est interprété differemment donc
remplaces

CorpsHTML = Input(LOF(F), #F)

par

Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop




excuses c'etais ca,
donc maintenant je n'ai plus de message d'erreur
quand je reçois le mail j'ai bien dans le corps quelque chose mais qui ne
resemble à rien , un petit ex: <html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40"> ...



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




1 2 3 4