使用 VBA 将图像插入电子邮件

问题描述 投票:0回答:2

我在 Excel 中运行了以下 VBA 代码片段,它向我们的客户发送电子邮件。我正在尝试将图片插入电子邮件正文。下面的代码在发送到我的内部 Outlook 电子邮件时工作正常,但在发送到我的个人 Gmail 帐户时不起作用,这意味着图像不显示。也许是因为 LetterHead 文件路径在我们的网络中?帮助将不胜感激!

Dim MItem As Outlook.MailItem
Dim LetterHead As String
LetterHead = "file path to .png file located in company network drive"

For x = 1 To xlList.DataBodyRange.Rows.Count
    Set MItem = OutlookApp.CreateItem(olMailItem)
    PolNum = xlList.DataBodyRange.Cells(x, 7).Value
    PolSubj = Subj & PolNum
    
    With MItem
        .To = EmailAddr
        .Subject = PolSubj
        .HTMLBody = "<center><img src=" & Chr(34) & LetterHead & Chr(34) & "></center>" & StrBody & .HTMLBody
        .Send
    End With
excel vba outlook email-attachments
2个回答
0
投票

可能是因为 LetterHead 文件路径在我们的网络中?

是的,你走对了路。您需要将图像上传到任何网络服务器以供其他人使用。请注意,电子邮件客户端应用程序可能会自动阻止互联网图像。

如果您需要确保图像显示给用户,您需要将图像附加到邮件项目(参见 Attachments.Add),然后设置

PR_ATTACH_CONTENT_ID
MAPI 属性(DASL 名称为“http:/ /schemas.microsoft.com/mapi/proptag/0x3712001F") 使用 PropertyAccessor.SetProperty 并使用与在附件对象上设置的
src
属性值匹配的
PR_ATTACH_CONTENT_ID
属性引用附件。例如:

attachment = MailItem.Attachments.Add("c:\temp\MyPicture.jpg")
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "YourPictureId")
MailItem.HTMLBody = "<html><body>This is an embedded image <img src=""cid:YourPictureId""></body></html>"

PR_ATTACH_CONTENT_ID
属性对应消息发送时的
Content-ID
MIME头


0
投票

试试

Option Explicit

Sub InsertImageInEmailBody()

    Dim ImageFilePath As String, xMailBody As String
    
    ' Set the image file path
    ImageFilePath = "C:\path\to\file\picture.png"
    
    xMailBody = "<BODY>Hi,<br> <br>This is the pic<br><br>" & _
        "<img src='" & ImageFilePath & "'><br><br>" & _
        "Thank you.</BODY>"
    
With CreateObject("outlook.application").CreateItem(0)
        .To = "[email protected]"
        .Subject = "Here it is"
        .HTMLBody = xMailBody & .HTMLBody
        '.Attachments.Add
        .Display
        '.send
End With
    
    
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.