Microsoft 365 Envoi d'une image via Outlook image non lisible

Benoit84

XLDnaute Nouveau
Bonjour
Dans mon organisation, j'utilise couramment l'envoi de mail via Outlook avec une macro qui copie une plage de cellule, enregistre un fichier en format .jpg, puis l'inclus dans le corps du mail Outlook.
Jusqu'à présent tout fonctionnait, pour l'ensemble des réceptionnaire.
J'ai un problème depuis peu avec certains destinataires or de mon entreprise qui reçoivent le mail mais sans l'image dans le corps ni en PJ.
J'ai chercher par tou dans les paramètre Outlook ,chez moi et chez mes destinataires, sans trouver pourquoi l'image n'est pas dedans le message.

Si dès fois vous avez une idée, je veux envoyer une image dans le message mais pas en pj.


un extrait de mon code :

....
Dim Img As String, Plage As Range, PathTmp As String
'PathTmp = Environ$("temp") & ""
PathTmp = Environ$("temp") & "\"

Img = "Image.jpg"
If Dir(PathTmp & Img) <> "" Then Kill PathTmp & Img
Set Plage = Range("E2:Y104")

'Création d'un fichier image dans le répertoire temporaire
Plage.CopyPicture
With ActiveSheet.ChartObjects.Add(0, 0, Plage.Width, Plage.Height)
.Activate
.Chart.Paste
.Chart.Export PathTmp & Img, "JPG"
End With

ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete



Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(olMailItem)

With OutMail
.SentOnBehalfOfName = "papamaman@moi.fr"
.To = Worksheets("Mail").Range("B3")
.CC = Worksheets("Mail").Range("B4")
.Subject = Worksheets("Mail").Range("B6")

.Attachments.Add PathTmp & Img, olByValue, 0
.HTMLBody = "<span LANG=FR><p class=style2>" _
& "<font FACE=Calibri SIZE=3>Bonjour,<br><br>" _
& "<img src='cid:" & Img & "'</font></span>"


'===================================================================
.Send
'.Display

'===================================================================

End With

On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
 

Hasco

XLDnaute Barbatruc
Bonjour,

Après tests, la seule chose que je vois qui puisse éventuellement poser problèmes est que la bibliothèque outlook n'est pas référencée et qu'ainsi les valeurs de olMailItem et olByValue soit égales à 0.
Ce n'est pas grave pour olMailItem qui a pour valeur 0 mais olByValue doit avoir la valeur 1.

En général on construit l'application OutLook en 'late binding' par createObject quand on ne référence pas la bibliothèque Outlook, il faut alors définir les valeurs des constantes qu'on va employer.

Si la bibliothéque est référencée, alors on construit l'application par Set OutApp = new Outlook.Application, il n'est alors pas utile de définir les valeurs des constantes employées.

Certains durant la période de développement référencent la bibliothèque, récupèrent les valeurs des constantes puis finalisent leur projet en créant l'application par créateobject et suppriment la référence à la bibliothèque.

Choisir les deux méthodes à la fois, peut être problématique.

Cordialement
 

Discussions similaires

Réponses
4
Affichages
268
Haut Bas