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

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
Bonjour

"yannick"
Puis quand j'appele la fonction lorsque je mes HTMLBody= "c:mailingtest.htm"



euh...oui : il faut mettre le contenu de test.htm et non le chemin du fichier :

htmlbody = "<html> <head> blabla <body> blablabla </body></head><html>"

a+

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

Avatar
yannick
Bonjour,
si je comprends bien quand je met HTMLBody il faut mettre le contenu et non
le chemin du fichier, mais comment puis-je dire à access de prendre le
contenu de c:mailingtest.htm et de le mettre dans le coprs de mon message?

Cela dois etre possible car Pierre y arrive avec un etat que j'ai trouvé sur
http://www.3stone.be/access/articles.php?lng=fr&pg qui fonctionne.

Peux tu m'aider?
Merci

@+

Yannick



Bonjour

"yannick"
Puis quand j'appele la fonction lorsque je mes HTMLBody= "c:mailingtest.htm"



euh...oui : il faut mettre le contenu de test.htm et non le chemin du fichier :

htmlbody = "<html> <head> blabla <body> blablabla </body></head><html>"

a+

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






Avatar
oui : en lisant bien le code que tu donnes dans le lien, on peut en extraire la partie qui stocke le contenu du fichier dans une
variable :

Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
F = FreeFile
Open "c:tonfichier.htm" For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
HTMLBody= CorpsHTML
a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------



"yannick" a écrit dans le message de news:

Bonjour,
si je comprends bien quand je met HTMLBody il faut mettre le contenu et non
le chemin du fichier, mais comment puis-je dire à access de prendre le
contenu de c:mailingtest.htm et de le mettre dans le coprs de mon message?

Cela dois etre possible car Pierre y arrive avec un etat que j'ai trouvé sur
http://www.3stone.be/access/articles.php?lng=fr&pg qui fonctionne.

Peux tu m'aider?
Merci

@+

Yannick



Bonjour

"yannick"
Puis quand j'appele la fonction lorsque je mes HTMLBody= "c:mailingtest.htm"



euh...oui : il faut mettre le contenu de test.htm et non le chemin du fichier :

htmlbody = "<html> <head> blabla <body> blablabla </body></head><html>"

a+

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








Avatar
yannick
Ok je suis en train de tester mais j'ai un soucis.
Dans mon formulaire j'ai:
Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, Optional CorpsHTML As
String, Optional BodyText As String, _
Optional Cc As String, Optional Bcc As String)

Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()
Dim txtLine As String
Dim F As Integer
F = FreeFile
Open "c:mailingmailing.htm" For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
HTMLBody = CorpsHTML

With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
.TextBody = BodyText
.Send
End With
Set Cdo_Message = Nothing
End Function

Puis sur un bouton j'ai
Private Sub Commande2_Click()
Call SendMailCDO("", "", "Test de courriel",
CorpsHTML)
end sub
Pour ceci qu'est ce que je dois metre au lieu de CorpsHTML (commande2)?
(HTMLBody ne fonctionne pas , je ne dois pas mettre une variable)
Sinon est ce que ma fonction est bonne?

Je te remercie pour passer du temps sur mon cas.

@+

Yannick




oui : en lisant bien le code que tu donnes dans le lien, on peut en extraire la partie qui stocke le contenu du fichier dans une
variable :

Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
F = FreeFile
Open "c:tonfichier.htm" For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
HTMLBody= CorpsHTML
a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------



"yannick" a écrit dans le message de news:

Bonjour,
si je comprends bien quand je met HTMLBody il faut mettre le contenu et non
le chemin du fichier, mais comment puis-je dire à access de prendre le
contenu de c:mailingtest.htm et de le mettre dans le coprs de mon message?

Cela dois etre possible car Pierre y arrive avec un etat que j'ai trouvé sur
http://www.3stone.be/access/articles.php?lng=fr&pg qui fonctionne.

Peux tu m'aider?
Merci

@+

Yannick



Bonjour

"yannick"
Puis quand j'appele la fonction lorsque je mes HTMLBody= "c:mailingtest.htm"



euh...oui : il faut mettre le contenu de test.htm et non le chemin du fichier :

htmlbody = "<html> <head> blabla <body> blablabla </body></head><html>"

a+

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













Avatar
rebonjour

il faut lire le contenu du fichier puis l'envoyer à la fonction SendMailCDO en même temps que le destinataire, sujet, verbe,
complément etc ... :


Option Compare Database
Option Explicit

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, CorpsHTML("E:Mes documentsfiche1.htm"), "<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 txtLine As String
Dim F As Integer
F = FreeFile
Open strFile For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
End Function

Sub test()
SendMailCDO "", "", "ton sujet", CorpsHTML("E:Mes documentsfiche1.htm"), "", ""
End Sub


a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Avatar
Eric
Bonjour Yannick

Il faut que sur clic du commande2 tu renseignes la variable HTMLBody
comme indiqué par Arnaud

Private Sub Commande2_Click()

Dim HTMLBody as string
Dim F As Integer
F = FreeFile
Open "c:mailingmailing.htm" For Input As #F
Do While Not EOF(F) <<-- pour éviter la boucle voir ***
Line Input #F, txtLine
HTMLBody = HTMLBody & txtLine
Loop
Close #F

' puis maintenant appelé SendMailCDO en lui passant HTMLBody

Call SendMailCDO("", "", "Test de
courriel", HTMLBody)

End Sub

***
Pour éviter de faire une boucle dès lors que tu ne traites pas l'info
ligne par ligne, tu peux simplifier comme suit (tout le contenu est lu
en une seule passe):

Dim HTMLBody as string
Dim F As Integer
F = FreeFile
Open "c:mailingmailing.htm" For Input As #F
HTMLBody=Input(lof(F),#F)
Close #F

Ok je suis en train de tester mais j'ai un soucis.
Dans mon formulaire j'ai:
Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, Optional CorpsHTML As
String, Optional BodyText As String, _
Optional Cc As String, Optional Bcc As String)

Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()
Dim txtLine As String
Dim F As Integer
F = FreeFile
Open "c:mailingmailing.htm" For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
HTMLBody = CorpsHTML

With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
.TextBody = BodyText
.Send
End With
Set Cdo_Message = Nothing
End Function

Puis sur un bouton j'ai
Private Sub Commande2_Click()
Call SendMailCDO("", "", "Test de courriel",
CorpsHTML)
end sub
Pour ceci qu'est ce que je dois metre au lieu de CorpsHTML (commande2)?
(HTMLBody ne fonctionne pas , je ne dois pas mettre une variable)
Sinon est ce que ma fonction est bonne?

Je te remercie pour passer du temps sur mon cas.

@+

Yannick





oui : en lisant bien le code que tu donnes dans le lien, on peut en extraire la partie qui stocke le contenu du fichier dans une
variable :

Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
F = FreeFile
Open "c:tonfichier.htm" For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
HTMLBody= CorpsHTML
a+
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------



"yannick" a écrit dans le message de news:


Bonjour,
si je comprends bien quand je met HTMLBody il faut mettre le contenu et non
le chemin du fichier, mais comment puis-je dire à access de prendre le
contenu de c:mailingtest.htm et de le mettre dans le coprs de mon message?

Cela dois etre possible car Pierre y arrive avec un etat que j'ai trouvé sur
http://www.3stone.be/access/articles.php?lng=fr&pg qui fonctionne.

Peux tu m'aider?
Merci

@+

Yannick




Bonjour

"yannick"

Puis quand j'appele la fonction lorsque je mes HTMLBody= "c:mailingtest.htm"



euh...oui : il faut mettre le contenu de test.htm et non le chemin du fichier :

htmlbody = "<html> <head> blabla <body> blablabla </body></head><html>"

a+

--
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
Salut Eric

"Eric" a écrit dans le message de news:

HTMLBody=Input(lof(F),#F)


à la place de

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


= J'ADORE !!

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

Avatar
Eric
Bonsoir Arnaud,

Merci ;-)

Sur des fichiers importants, je pense que ça doit être beaucoup plus
rapide : pas de boucle et pas de concaténation, mais je n'ai jamais
réellement testé, c'est par paresse quand je veux tout prendre sans
traitement.

Salut Eric

"Eric" a écrit dans le message de news:


HTMLBody=Input(lof(F),#F)



à la place de


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



= J'ADORE !!

Merci et a+


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


Avatar
Eric
re,

Finalement sur le coup du password & login, y a que nous 2 qui étions
intéressés car j'ai pas vu de retour (bon ou mauvais). :-)


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
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
---------------------------------------------
1 2 3 4