在HTML电子邮件中嵌入原始大小的图像

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

我正在通过Access与VBA合作创建邮件。

当我将图像大小调整为小于实际大小时,它会嵌入。当我省略尺寸或以实际尺寸放入时,图像作为附件出现。

下面是代码片段,miniplane.jpg是附件。它的实际尺寸是600x160。如果我将代码更改为300x80,则会显示。

Sub send_SHCmail()

    '>>>> Declarations >>>>

    Dim strPath As String
    Dim strFileName As String
    Set appOutLook = CreateObject("Outlook.Application")
    Set MailOutLook = appOutLook.CreateItem(olMailItem)

    Dim olApp As Object
    Dim objMail As Object

    Set SHCData1 = Nothing
    Set SHCData2 = Nothing

    '>>>> Email Creation and Outlook Error Loop >>>>

    On Error Resume Next 'Keep going if there is an error
    Set olApp = GetObject(, "Outlook.Application") 'See if Outlook is open

    If Err Then 'Outlook is not open
       Set olApp = CreateObject("Outlook.Application") 'Create a new instance
    End If

    'Create e-mail item
    Set objMail = olApp.CreateItem(olMailItem)
    With objMail

        'Set body format to HTML
        .BodyFormat = olFormathtml
        .To = "[email protected]"
        .Bcc = SHCDistribution
        .Sentonbehalfofname = "[email protected]"
        .Subject = "Planning Report - " & Format(Now, "MMMM d, yyyy")
        .Attachments.Add "\\local\Sdata\Logo-Facet-01.png", olByValue, 0
        .Attachments.Add "\\local\Sdata\miniplane.jpg", olByValue, 0
        .HTMLBody = "<!DOCTYPE html>"

        'Body Header
        .HTMLBody = .HTMLBody & "<html><head><body>"
        .HTMLBody = .HTMLBody & "<img src=""cid:Logo-Facet-01.png"" alt=""Image Missing"" width=""215.6"" height=""96.53"" style=""display: block;"" />"
        .HTMLBody = .HTMLBody & "<img src=""cid:miniplane.jpg"" alt=""Image Missing"" width=""600"" height=""160"" style=""display: block;"" />"

        .Display
    End With

End Sub
html vba outlook access-vba
1个回答
0
投票

首先,不要使用HTMLBody作为中间变量 - 读取和设置它是昂贵的。使用局部变量构建HTML,然后只设置一次HTMLBody属性。

如果您通过img属性设置src标记,则必须设置PR_ATTACH_CONTENT_ID属性 - 请参阅How to add images from resources folder as attachment and embed into outlook mail body in C#

© www.soinside.com 2019 - 2024. All rights reserved.