Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA Envoi d'un email avec une image dans le corps du message

anthooooony

XLDnaute Occasionnel
Chers Downloadiens,

J'ai une problématique à vous soumettre, on me demande d'envoyer un email avec un message bien précis, avec des logos couleurs, texte etc mon niveau en programmation étant plus que limitée. J'ai alors pensé à intégrer une image(avec toutes les informations dans le code . le probleme c'est que lorsque je l'envoie moi je vois bien l'image car elle se trouve sur mon C:\ mais les autres reçoivent une croix rouge ou rien du tout.



VB:
        .HTMLBody = "<img src=C:\Users\RC1194\Desktop\Projet\Pharmo\Macro\Mail_reporting.png>"
  
        .Mail.attachement.Add "C:\Users\RC1194\Desktop\Projet\Pharmo\Macro\Mail_reporting.png"




Une autre était de mettre l'image en PJ, et de l'intégrer dans le code. le problème est que chaque personne recevant l'email est obligée de faire 'télécharger' l'image. seulement les personnes qui vont recevoir le mail auront l'impression que c'est un spam, le corps du mail sera vide.

VB:
Private Const Str_LienImageEn_PJ As String = "C:\Users\RC1194\Desktop\Projet\Pharmo\Macro\Mail_reporting.png"

Je me disais qu'il est peut etre possible de mettre l'image dans la signature outlook et ainsi celle ci pourrait etre récupérée le corps du mail?
Pensez vous que cette solution pourrait être la bonne? Si oui auriez vous une piste à m'indiquer?


Ci dessous la capture d'écran du fichier: pour ceux intéressés le fichier est pas mal pour envoyer du mail, mettre des personnes en destinataire, copie, copier cachées, et mettre des pieces jointes.

Merci pour votre aide,

Anthooooony
 

Pièces jointes

  • Fichier Globalv2.xlsm
    55.6 KB · Affichages: 25

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Anthooooony

Anthooooony
Essaie en adaptant l'exemple ci-dessous
NB:Ne pas oublier la référence à Outlook dans les références de VBE.
VB:
Sub test()
    Dim oApp As Outlook.Application
    Dim oEmail As MailItem
    Dim colAttach As Outlook.Attachments
    Dim oAttach As Outlook.Attachment

    Dim olkPA As Outlook.PropertyAccessor

    Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001F"

    'create new Outlook MailItem
    Set oApp = CreateObject("Outlook.Application")
    Set oEmail = oApp.CreateItem(olMailItem)
    'add graphic as attachment to Outlook message
    'change path to graphic as needed
    Set colAttach = oEmail.Attachments
    Set oAttach = colAttach.Add("C:\temp\logo.jpg")
    Set olkPA = oAttach.PropertyAccessor

    olkPA.SetProperty PR_ATTACH_CONTENT_ID, "logo.jpg"

    oEmail.Close olSave
    'change the src property to 'cid:your picture filename'
    'it will be changed to the correct cid when its sent.
    oEmail.HTMLBody = "<BODY><IMG src=""cid:logo.jpg""> </BODY>"

    oEmail.Save
    oEmail.To = "someemail@gmail.com"
    oEmail.Subject = "test"
    oEmail.Send

    Set oEmail = Nothing
    Set colAttach = Nothing
    Set oAttach = Nothing
    Set oApp = Nothing
End Sub
 

anthooooony

XLDnaute Occasionnel
Bonjour,

Merci beaucoup Staple1600 !! c'est génial effectivement en passant par l'url communiqué ca fonctionne super bien!!. Par contre en essayant d'adapter mon code au tiens je suis me loupé en route. je n'arrive plus à recuperer les PJ... quelqu'un pourrait m'aider il me marque qu'il y a une erreur de compilation ou non qualifée.



VB:
.Attachments.Add Chemin1


VB:
Sub BoucleDestinataires2()
Dim i As Long
i = 2
While ThisWorkbook.Sheets("Pharma").Cells(i, 1) <> vbNullString
    Call Macro2(ThisWorkbook.Sheets("Pharma").Cells(i, 1), ThisWorkbook.Sheets("Pharma").Cells(i, 2), ThisWorkbook.Sheets("Pharma").Cells(i, 3), ThisWorkbook.Sheets("Pharma").Cells(i, 4), ThisWorkbook.Sheets("Pharma").Cells(i, 5), ThisWorkbook.Sheets("Pharma").Cells(i, 6), ThisWorkbook.Sheets("Pharma").Cells(i, 7), ThisWorkbook.Sheets("Pharma").Cells(i, 8), ThisWorkbook.Sheets("Pharma").Cells(i, 9), ThisWorkbook.Sheets("Pharma").Cells(i, 10), ThisWorkbook.Sheets("Pharma").Cells(i, 11), ThisWorkbook.Sheets("Pharma").Cells(i, 12), ThisWorkbook.Sheets("Pharma").Cells(i, 13))
   i = i + 1
Wend
End Sub


Sub Macro2(Destinataire2 As String, CC As String, BCC As String, Objet As String, Chemin1 As String, Chemin2 As String, Chemin3 As String, Chemin4 As String, Chemin5 As String, Chemin6 As String, Chemin7 As String, Chemin8 As String, Chemin9 As String)
    Dim OutMail As Object
    Dim oApp As Outlook.Application
    Dim oEmail As MailItem
    Dim colAttach As Outlook.Attachments
    Dim oAttach As Outlook.Attachment

    Dim olkPA As Outlook.PropertyAccessor

    Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001F"

    'create new Outlook MailItem
    Set oApp = CreateObject("Outlook.Application")
    Set oEmail = oApp.CreateItem(olMailItem)
    'add graphic as attachment to Outlook message
    'change path to graphic as needed
    Set colAttach = oEmail.Attachments
    Set oAttach = colAttach.Add("C:\Users\RC1194\Desktop\Projet\Pharmo\Macro\Mail_reporting.png")
    Set olkPA = oAttach.PropertyAccessor
     .Attachments.Add Chemin1
  '     oEmail.Attachments.Add Chemin2
   '     oEmail.Attachments.Add Chemin3

    olkPA.SetProperty PR_ATTACH_CONTENT_ID, "Mail_reporting.png"

       oEmail.Close olSave
    'change the src property to 'cid:your picture filename'
    'it will be changed to the correct cid when its sent.
       oEmail.HTMLBody = "<BODY><IMG src=""cid:Mail_reporting.png""> </BODY>"
            'oEmail.Save
       oEmail.To = Destinataire2
       oEmail.CC = CC
       oEmail.BCC = BCC
       oEmail.Subject = Objet
  
   
    'oEmail.Send
  '  oEmail.Save
   ' oEmail.To = "anthony@hotmail.com"
   ' oEmail.Subject = "test"
    oEmail.Send

    Set oEmail = Nothing
    Set colAttach = Nothing
    Set oAttach = Nothing
    Set oApp = Nothing
End Sub


cordialement,

Anthoooooony

bonne journée
 

Pièces jointes

  • v1.png
    390.5 KB · Affichages: 114
  • Copie de Fichier Globalv5.xlsm
    53 KB · Affichages: 31
Dernière édition:

vivi14

XLDnaute Nouveau
Bonjour,

J'interviens 1 an plus tard mais j'ai exactement le même problème. Après avoir inséré l'image dans mon corps du mail avec un code identique au votre, je n'arrive plus à récupérer mes PJ et j'ai le même message d'erreur que vous.

Aviez-vous trouvé une solution svp?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…