OVH Cloud OVH Cloud

Envoie Mail HTML

6 réponses
Avatar
Emcy
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que dans le corps
soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem, ToContact As
Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",
"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("cmarmonier@ifotec.com")
.Body = "blabla"
.Attachments.Add "c:\readme.txt" '& SOCiete & "" & Nomvar,
olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub

6 réponses

Avatar
papou
Bonjour Emcy
Je ne connais pas la réponse à ta question, mais par contre je souhaite te
signaler quelque chose :
Tu as nommé ta macro "Outlook"
Je pense personnellement que c'est assez dangereux parce que notamment tu
déclares des objets OLE Outlook dans ta macro
Donc un petit conseil si tu le permets ;-), renommes ta macro autrement.
Cordialement
Pascal


"Emcy" a écrit dans le message de
news:
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que dans le corps
soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem, ToContact
As

Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",

"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("")
.Body = "blabla"
.Attachments.Add "c:readme.txt" '& SOCiete & "" & Nomvar,
olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub




Avatar
Emcy
J'ai fait quelques modif sur ma macro.
il semblerait qu'avec la commande .HTMLBody qu'on puisse insèrer du text en
format HTML.
Comment faire pour récupérer mon fichier HTML dans une variable ?

Sub EnvoiOutlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem, ToContact As
Recipient
Dim Fichier, AdresseMail As String

AdresseMail = ""

Set OLF = GetObject("",
"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olMailItem = OLF.Items.Add

On Error GoTo DetectionErreur

With olMailItem

.Subject = "Commande "

Set ToContact = .Recipients.Add(AdresseMail)
.BodyFormat = olFormatHTML

'.BodyFormat = olFormatHTML
'.Attachments.Add "c:readme.txt"
.HTMLBody = "<BODY>" & vbCr & "<TD class=xl27>Coucou c'est moi !</TD>" &
"<BODY>"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Display 'affiche le message
'.Send 'envoie le message

End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

Exit Sub

DetectionErreur:
MsgBox ("Il y a eu une erreur! Vérifiez que le message a été correctement
envoyé")

End Sub



"papou" <nspm> a écrit dans le message de
news:OoN$
Bonjour Emcy
Je ne connais pas la réponse à ta question, mais par contre je souhaite te
signaler quelque chose :
Tu as nommé ta macro "Outlook"
Je pense personnellement que c'est assez dangereux parce que notamment tu
déclares des objets OLE Outlook dans ta macro
Donc un petit conseil si tu le permets ;-), renommes ta macro autrement.
Cordialement
Pascal


"Emcy" a écrit dans le message de
news:
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que dans le
corps


soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem, ToContact
As

Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",



"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("")
.Body = "blabla"
.Attachments.Add "c:readme.txt" '& SOCiete & "" & Nomvar,
olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub








Avatar
pascal engelmajer
Salut Emcy,
Un fichier HTML est un fichier texte.
tu peux l'ouvrir avec
open "fichier.html" as #1 for input
puis le lire dans une variable en concatenant dans ta variable
do until eof(1)
INPUT #1, monInput
maVar = maVar & monInput
loop
close #1
.../...
Amicalement
Pascal
"Emcy" a écrit dans le message de news:

J'ai fait quelques modif sur ma macro.
il semblerait qu'avec la commande .HTMLBody qu'on puisse insèrer du text
en

format HTML.
Comment faire pour récupérer mon fichier HTML dans une variable ?

Sub EnvoiOutlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem, ToContact
As

Recipient
Dim Fichier, AdresseMail As String

AdresseMail = ""

Set OLF = GetObject("",

"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

On Error GoTo DetectionErreur

With olMailItem

.Subject = "Commande "

Set ToContact = .Recipients.Add(AdresseMail)
.BodyFormat = olFormatHTML

'.BodyFormat = olFormatHTML
'.Attachments.Add "c:readme.txt"
.HTMLBody = "<BODY>" & vbCr & "<TD class=xl27>Coucou c'est moi !</TD>"
&

"<BODY>"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Display 'affiche le message
'.Send 'envoie le message

End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

Exit Sub

DetectionErreur:
MsgBox ("Il y a eu une erreur! Vérifiez que le message a été correctement
envoyé")

End Sub



"papou" <nspm> a écrit dans le message de
news:OoN$
Bonjour Emcy
Je ne connais pas la réponse à ta question, mais par contre je souhaite
te


signaler quelque chose :
Tu as nommé ta macro "Outlook"
Je pense personnellement que c'est assez dangereux parce que notamment
tu


déclares des objets OLE Outlook dans ta macro
Donc un petit conseil si tu le permets ;-), renommes ta macro autrement.
Cordialement
Pascal


"Emcy" a écrit dans le message de
news:
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que dans le
corps


soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem,
ToContact



As
Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",





"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("")
.Body = "blabla"
.Attachments.Add "c:readme.txt" '& SOCiete & "" & Nomvar,
olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub












Avatar
Emcy
Merci, maitenant j'arrive à remplir mon corps mais...
... les images ne s'affiches pas. Tu as une solution ?

"pascal engelmajer" a écrit dans le
message de news:
Salut Emcy,
Un fichier HTML est un fichier texte.
tu peux l'ouvrir avec
open "fichier.html" as #1 for input
puis le lire dans une variable en concatenant dans ta variable
do until eof(1)
INPUT #1, monInput
maVar = maVar & monInput
loop
close #1
.../...
Amicalement
Pascal
"Emcy" a écrit dans le message de news:

J'ai fait quelques modif sur ma macro.
il semblerait qu'avec la commande .HTMLBody qu'on puisse insèrer du text
en

format HTML.
Comment faire pour récupérer mon fichier HTML dans une variable ?

Sub EnvoiOutlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem, ToContact
As

Recipient
Dim Fichier, AdresseMail As String

AdresseMail = ""

Set OLF = GetObject("",



"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

On Error GoTo DetectionErreur

With olMailItem

.Subject = "Commande "

Set ToContact = .Recipients.Add(AdresseMail)
.BodyFormat = olFormatHTML

'.BodyFormat = olFormatHTML
'.Attachments.Add "c:readme.txt"
.HTMLBody = "<BODY>" & vbCr & "<TD class=xl27>Coucou c'est moi
!</TD>"


&
"<BODY>"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Display 'affiche le message
'.Send 'envoie le message

End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

Exit Sub

DetectionErreur:
MsgBox ("Il y a eu une erreur! Vérifiez que le message a été
correctement


envoyé")

End Sub



"papou" <nspm> a écrit dans le message de
news:OoN$
Bonjour Emcy
Je ne connais pas la réponse à ta question, mais par contre je
souhaite



te
signaler quelque chose :
Tu as nommé ta macro "Outlook"
Je pense personnellement que c'est assez dangereux parce que notamment
tu


déclares des objets OLE Outlook dans ta macro
Donc un petit conseil si tu le permets ;-), renommes ta macro
autrement.



Cordialement
Pascal


"Emcy" a écrit dans le message de
news:
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que dans le
corps


soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem,
ToContact



As
Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",







"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("")
.Body = "blabla"
.Attachments.Add "c:readme.txt" '& SOCiete & "" & Nomvar,
olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub
















Avatar
pascal engelmajer
Salut Emcy,
L'adressage de ces images ?
Amicalement
Pascal
"Emcy" a écrit dans le message de news:

Merci, maitenant j'arrive à remplir mon corps mais...
... les images ne s'affiches pas. Tu as une solution ?

"pascal engelmajer" a écrit dans le
message de news:
Salut Emcy,
Un fichier HTML est un fichier texte.
tu peux l'ouvrir avec
open "fichier.html" as #1 for input
puis le lire dans une variable en concatenant dans ta variable
do until eof(1)
INPUT #1, monInput
maVar = maVar & monInput
loop
close #1
.../...
Amicalement
Pascal
"Emcy" a écrit dans le message de news:

J'ai fait quelques modif sur ma macro.
il semblerait qu'avec la commande .HTMLBody qu'on puisse insèrer du
text



en
format HTML.
Comment faire pour récupérer mon fichier HTML dans une variable ?

Sub EnvoiOutlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem,
ToContact



As
Recipient
Dim Fichier, AdresseMail As String

AdresseMail = ""

Set OLF = GetObject("",





"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

On Error GoTo DetectionErreur

With olMailItem

.Subject = "Commande "

Set ToContact = .Recipients.Add(AdresseMail)
.BodyFormat = olFormatHTML

'.BodyFormat = olFormatHTML
'.Attachments.Add "c:readme.txt"
.HTMLBody = "<BODY>" & vbCr & "<TD class=xl27>Coucou c'est moi
!</TD>"


&
"<BODY>"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Display 'affiche le message
'.Send 'envoie le message

End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

Exit Sub

DetectionErreur:
MsgBox ("Il y a eu une erreur! Vérifiez que le message a été
correctement


envoyé")

End Sub



"papou" <nspm> a écrit dans le message de
news:OoN$
Bonjour Emcy
Je ne connais pas la réponse à ta question, mais par contre je
souhaite



te
signaler quelque chose :
Tu as nommé ta macro "Outlook"
Je pense personnellement que c'est assez dangereux parce que
notamment




tu
déclares des objets OLE Outlook dans ta macro
Donc un petit conseil si tu le permets ;-), renommes ta macro
autrement.



Cordialement
Pascal


"Emcy" a écrit dans le message de
news:
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que dans
le





corps
soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem,
ToContact



As
Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",









"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("")
.Body = "blabla"
.Attachments.Add "c:readme.txt" '& SOCiete & "" & Nomvar,
olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub




















Avatar
Emcy
J'avais bien compris que ça venait de l'adresse des images : j'ai quand même
réussi à me debrouller
Sais tu comment supprimer l'intégralité de l'intérieur d'un document Text ?

"pascal engelmajer" a écrit dans le
message de news:
Salut Emcy,
L'adressage de ces images ?
Amicalement
Pascal
"Emcy" a écrit dans le message de news:

Merci, maitenant j'arrive à remplir mon corps mais...
... les images ne s'affiches pas. Tu as une solution ?

"pascal engelmajer" a écrit dans
le


message de news:
Salut Emcy,
Un fichier HTML est un fichier texte.
tu peux l'ouvrir avec
open "fichier.html" as #1 for input
puis le lire dans une variable en concatenant dans ta variable
do until eof(1)
INPUT #1, monInput
maVar = maVar & monInput
loop
close #1
.../...
Amicalement
Pascal
"Emcy" a écrit dans le message de news:

J'ai fait quelques modif sur ma macro.
il semblerait qu'avec la commande .HTMLBody qu'on puisse insèrer du
text



en
format HTML.
Comment faire pour récupérer mon fichier HTML dans une variable ?

Sub EnvoiOutlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem,
ToContact



As
Recipient
Dim Fichier, AdresseMail As String

AdresseMail = ""

Set OLF = GetObject("",







"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

On Error GoTo DetectionErreur

With olMailItem

.Subject = "Commande "

Set ToContact = .Recipients.Add(AdresseMail)
.BodyFormat = olFormatHTML

'.BodyFormat = olFormatHTML
'.Attachments.Add "c:readme.txt"
.HTMLBody = "<BODY>" & vbCr & "<TD class=xl27>Coucou c'est moi
!</TD>"


&
"<BODY>"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Display 'affiche le message
'.Send 'envoie le message

End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

Exit Sub

DetectionErreur:
MsgBox ("Il y a eu une erreur! Vérifiez que le message a été
correctement


envoyé")

End Sub



"papou" <nspm> a écrit dans le message de
news:OoN$
Bonjour Emcy
Je ne connais pas la réponse à ta question, mais par contre je
souhaite



te
signaler quelque chose :
Tu as nommé ta macro "Outlook"
Je pense personnellement que c'est assez dangereux parce que
notamment




tu
déclares des objets OLE Outlook dans ta macro
Donc un petit conseil si tu le permets ;-), renommes ta macro
autrement.



Cordialement
Pascal


"Emcy" a écrit dans le message de
news:
Salut,

J'arrive à envoyer des mails via vba. Comment faire pour que
dans






le
corps
soit un fichier .html que je vais chercher sur le disque dur ?

Voila le code que j'utilise actuellement :

Sub Outlook()

Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem,
ToContact



As
Recipient

MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("",











"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

Set olMailItem = OLF.Items.Add

With olMailItem

.Subject = "XXXXXXXXXXXX"

Set ToContact = .Recipients.Add("")
.Body = "blabla"
.Attachments.Add "c:readme.txt" '& SOCiete & "" &
Nomvar,






olByValue, , "le fichier que tu veux joindre"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With

Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing

End Sub