You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VBA向邮件插入图片:内部邮箱正常Gmail不显示求助

问题描述

我在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
解决方案

问题根源是Gmail无法访问公司内网的网络路径,必须将图片嵌入邮件内容而非引用外部路径。可以通过将图片添加为邮件附件并使用CID(Content ID)引用的方式解决,具体修改代码如下:

Dim MItem As Outlook.MailItem
Dim LetterHead As String
Dim att As Attachment
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
        ' 添加图片为附件,并设置隐藏(不在附件列表显示)
        Set att = .Attachments.Add(LetterHead, olByValue, 0)
        ' 为附件设置唯一CID
        att.PropertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/proptag/0x3712001F", "LetterHeadImage"
        ' 使用CID引用图片,替换原路径引用
        .HTMLBody = "<center><img src='cid:LetterHeadImage'></center>" & StrBody & .HTMLBody
        .Send
    End With
    Set att = Nothing
    Set MItem = Nothing
Next x

修改说明

  • 将图片添加为邮件附件,参数olByValue表示作为文件附件,第三个参数0设置附件为隐藏(不会在邮件的附件列表中显示)
  • 通过PropertyAccessor为附件设置唯一的CID标识(这里用LetterHeadImage)
  • 在HTML正文中用cid:LetterHeadImage引用该图片,确保邮件客户端能直接从邮件内容中读取图片,无需访问外部路径

内容的提问来源于stack exchange,提问作者B Ruppert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 20:47:29