Как вставить изображение в электронную почту Outlook с помощью VBA - PullRequest
2 голосов
/ 30 октября 2019

Очень тесно связано с Вставить картинку в тело Outlook Outlook Excel VBA

Я пытаюсь встроить изображение в электронную почту Outlook.

Я используюследующий фрагмент кода, половина которого была украдена из сообщения выше:

Sub PictureEmail()
    Dim outApp As New Outlook.Application
    Dim OutMail As Object
    Dim Attchmnt As String
    Dim Signature As String
    Dim WB As Workbook
    Set WB = ThisWorkbook
   Attchmnt = "C:\Users\Blah\Painted_Lady_Migration.jpg"


    Set OutMail = outApp.CreateItem(0)
    On Error Resume Next
    With OutMail
    .To = WB.Names("to").RefersToRange.Value2
    .CC = WB.Names("cc").RefersToRange.Value2
    .BCC = WB.Names("bcc").RefersToRange.Value2
    .Subject = WB.Names("Subject").RefersToRange.Value2
   .HTMLBody = "<img src=""cid:Painted_Lady_Migration.jpg""height=520 width=750>"
   .display
   End With

   If Attchmnt = "" Then
   Else
   OutMail.Attachments.Add Attchmnt
   End If

   On Error GoTo 0

End Sub

Однако при просмотре сгенерированного электронного письма у меня появляется ошибка «Невозможно отобразить связанное изображение. Файл может иметьбыл перемещен, переименован или удален ".

Я пробовал несколько разных способов прикрепить файл, в том числе:

.HTMLBody = "<img src=" & Chr(34) & "cid:Painted_Lady_Migration.jpg" & Chr(34) & "height=520 width=750>"

Я просто не могу заставить его работать> _<</p>

Я видел где-то, что пробелы в имени / пути к файлу могут выбрасывать его, поэтому я заменил пробелы в имени подчеркиванием

Что за глупость я забыл / пропустил?

1 Ответ

2 голосов
/ 30 октября 2019

* * * * * * * * * * * * * * * * * * * * * * * * * cid создается, когда вы прикрепляете его, поэтому вам нужно сделать это перед тем, как отобразить / отправить его.

Попробуйте это так

Set OutMail = outApp.CreateItem(0)
With OutMail
    .To = WB.Names("to").RefersToRange.Value2
    .CC = WB.Names("cc").RefersToRange.Value2
    .BCC = WB.Names("bcc").RefersToRange.Value2
    .Subject = WB.Names("Subject").RefersToRange.Value2
    If Attchmnt <> "" Then 
       .Attachments.Add Attchmnt ' (additional arguments are optional)
       .HTMLBody = "<img src=""cid:Painted_Lady_Migration.jpg"" height=520 width=750>"
    Else
       .HTMLBody = "[no attachment included]"
    End If
   .Display
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...