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
la j'ai une page blanche dans le contenu
que je met:
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
CorpsHTML = strContenu
Loop

Close #F
End Function
ou
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne

Loop
CorpsHTML = strContenu
Close #F
End Function
c'est la meme chose, quelle galere




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







Avatar
Eric
j'ai fait une faute de frappe:
Line Input #F, txtLine il faut mettre
Line Input #F, txtLigne

la j'ai une page blanche dans le contenu
que je met:
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
CorpsHTML = strContenu
Loop

Close #F
End Function
ou
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne

Loop
CorpsHTML = strContenu
Close #F
End Function
c'est la meme chose, quelle galere




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

Avatar
Eric
et tu as mal inséré CorpsHTML = strContenu
il doit être après le Loop


la j'ai une page blanche dans le contenu
que je met:
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
CorpsHTML = strContenu
Loop

Close #F
End Function
ou
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne

Loop
CorpsHTML = strContenu
Close #F
End Function
c'est la meme chose, quelle galere





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




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






Avatar
yannick
excuses j'ai vu
j'obtiens tjrs du text brut sinon il n' y pas d'argument comment format
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




j'ai fait une faute de frappe:
Line Input #F, txtLine il faut mettre
Line Input #F, txtLigne

la j'ai une page blanche dans le contenu
que je met:
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
CorpsHTML = strContenu
Loop

Close #F
End Function
ou
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne

Loop
CorpsHTML = strContenu
Close #F
End Function
c'est la meme chose, quelle galere




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




Avatar
yannick
c'etais fait mais j'ai voulu tester mais rien non plus


et tu as mal inséré CorpsHTML = strContenu
il doit être après le Loop


la j'ai une page blanche dans le contenu
que je met:
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
CorpsHTML = strContenu
Loop

Close #F
End Function
ou
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne

Loop
CorpsHTML = strContenu
Close #F
End Function
c'est la meme chose, quelle galere





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




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









Avatar
Eric
Le test If InStr(1, BodyText, "<HTML>") > 0 Then est toujours faux
donc faut modifier le test car le début du fichier est <html ...
Donc mets :
If InStr(1, BodyText, "<HTML ") > 0 Then
et ca devrait rouler ;-)



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Eric
Dernier post {soupir ...}

Je viens de faire un test avec HTMLBody = Input(lof(f),#F) et ça roule
aussi ;-)
Donc tu peux remettre la forme initiale.
Sur ce, j'abandonne et vais rejoindre Morphée :-)

Bonne continuation sur ton projet - A+

--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
yannick
Cela commence à venir
j'obtiens :<!--[if gte ms o 9]><![endif]-->
Salut test d'envoi d'email
au lieu de:
Salut test d'envoi d'email
j'ai :<!--[if gte ms o 9]><![endif]--> en plus de mon fichier htm


j'ai fait une faute de frappe:
Line Input #F, txtLine il faut mettre
Line Input #F, txtLigne

la j'ai une page blanche dans le contenu
que je met:
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne
CorpsHTML = strContenu
Loop

Close #F
End Function
ou
Function CorpsHTML(strFile As String) As String
Dim txtLine As String
Dim strContenu As String, txtLigne As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
strContenu = strContenu & txtLigne

Loop
CorpsHTML = strContenu
Close #F
End Function
c'est la meme chose, quelle galere




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




Avatar
yannick
Ok cela marche (HTMLBody = Input(lof(f),#F)) ,magnifique trop bon, je te
remercie, bonne nuit

@+

yannick



Dernier post {soupir ...}

Je viens de faire un test avec HTMLBody = Input(lof(f),#F) et ça roule
aussi ;-)
Donc tu peux remettre la forme initiale.
Sur ce, j'abandonne et vais rejoindre Morphée :-)

Bonne continuation sur ton projet - A+

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



Avatar
3stone
"Eric"
| Sur ce, j'abandonne et vais rejoindre Morphée :-)


Quoi, déjà ?? ;-)





heu... je tourne à gauche...
merde ! je me suis cogné ! j'aurais dû allumer ;-(

Allei, bonne nuit !


MDR

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
1 2 3 4