首页 > 解决方案 > Outlook 丢失 HTML 格式

问题描述

我在 Outlook 中收到的电子邮件会丢失 HTML 格式,但在其他应用程序中打开电子邮件时不会丢失。任何想法为什么?

Private Sub Command27_Click()
    DoCmd.OutputTo acOutputReport, "rptInvoice", acFormatPDF, Environ("USERPROFILE") & "\Desktop\MDFInvoice.pdf"
    Dim appOutLook As Object, MailOutLook As Object, insp As Object
    Dim strPath As String, strFilter As String, strFile As String, vbHTML As String

    vbHTML = "<html><head></head><body> Hello! </br></br>"
    vbHTML = vbHTML & "This is an invoice for the MDF Funds please see below, or the attached PDF included for your record keeping purposes </br></br>"
    vbHTML = vbHTML & "Kudelski Security Inc. </br>"
    vbHTML = vbHTML & "Suite 100 </br>"
    vbHTML = vbHTML & "Minnetonka MN 55343 </br>"
    vbHTML = vbHTML & "952-543-699</br>"
    vbHTML = vbHTML & "Tax ID # 41-1961338 </br></br>"
    vbHTML = vbHTML & "<b>Invoice To:</b></br>"
    vbHTML = vbHTML & DLookup("OrgName", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & DLookup("Street", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & DLookup("City", "qryRptInvoice") & " " & DLookup("State", "qryRptInvoice") & " " & DLookup("ZipCode", "qryRptInvoice") & " </br></br>"
    vbHTML = vbHTML & "<b>Invoice Details: </b></br>"
    vbHTML = vbHTML & "Date- " & Date & " </br>"
    vbHTML = vbHTML & "Invoice # - " & DLookup("InvoiceNumber", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & "Terms- " & DLookup("Terms", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & "Due Date- " & DLookup("DueDate", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & "Subsidiary- " & DLookup("Subsidiary", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & "Currency- " & DLookup("Currency", "qryRptInvoice") & " </br>"
    vbHTML = vbHTML & "Total Amount- " & Format(DSum("LineAmount", "qryRptInvoice"), "Currency") & "</body></html>"

    strPath = Environ("USERPROFILE") & "\Desktop\report.pdf"      'Edit to your path
    If strPath <> "" Then
        Set appOutLook = CreateObject("Outlook.Application")
        Set MailOutLook = appOutLook.CreateItem(olMailItem)

        With MailOutLook
            .To = Me.txtTestEmail
            .Subject = "MDF Invoice Kudelski Security"
            .HTMLBody = vbHTML
            .BodyFormat = olFormatHTML
            .Attachments.Add strPath
            .Send
        End With
    Else
        MsgBox "No file matching " & strPath & strFilter & " found." & vbCrLf & _
                "Processing terminated."
        Exit Sub
    End If
End Sub

标签: htmlvbams-accessoutlook

解决方案


首先,确保你最终得到一个格式良好的 HTML 标记。在标记格式不正确的情况下设置消息正文的问题可能会导致将您的内容视为纯文本。

其次,不需要BodyFormat显式设置属性,因为您处理的是HTMLBody属性。


推荐阅读