在线图片未显示在收件人的Outlook中

时间:2019-04-20 16:20:50

标签: excel vba outlook outlook-vba

我有以下代码,用于从Excel文件发送电子邮件。我当前的问题是,如果通过代码发送,则收件电子邮件中不会显示在线图片。

如果我手动按发送,它将显示它,但是如果创建了80多个草稿电子邮件,Outlook将崩溃。

任何帮助将不胜感激。

Sub SendEmail()
        Dim outlookApp As Object
        Dim outlookMail As Object
        Dim sigString As String
        Dim Signature As String
        Dim insertPhoto As String
        Dim photoSize As String
        Set outlookApp = CreateObject("Outlook.Application")
        Set outlookMail = outlookApp.CreateItem(0)

        'Change only Mysig.htm to the name of your signature
        sigString = Environ("appdata") & _
                    "\Microsoft\Signatures\Mysig.htm"
        If Dir(sigString) <> "" Then
            Signature = GetBoiler(sigString)
        Else
            Signature = ""
        End If

        insertPhoto = "C:\Users\store\Desktop\Presale.jpg" 'Picture path
        photoSize = "<img src=""cid:Presale.jpg""height=400 width=400>" 'Change image name here

        emailMessage = "<BODY style=font-size:11pt;font-family:Calibri>Dear " & titleName & " " & fullName & "," & _
                        "<p>I hope my email will find you very well." & _
                        "<p>Our <strong>sales preview</strong> starts on Thursday the 22nd until Sunday the 25th of November." & _
                        "<p>I look forward to welcoming you into the store to shop on preview.<p>" & _
                        "<p> It really is the perfect opportunity to get some fabulous pieces for the fast approaching festive season." & _
                        "<p>Please feel free to contact me and book an appointment." & _
                        "<p>I look forward to seeing you then." & _
                       "<p>" & photoSize & _
                        "<p>Kind Regards," & _
                        "<br>" & _
                        "<br><strong>My Name</strong>" & _
                        "<br>Assistant Store Manager" & _
                        "<p>"


        With outlookMail
            .To = clientEmail
            .CC = ""
            .BCC = ""
            .Subject = "PRIVATE SALE | IN STORE"
            .BodyFormat = 2
            .Attachments.Add insertPhoto, 1, 0
            .HTMLBody = emailMessage & Signature 'Including photo insert and signature
            .Importance = 2
            .ReadReceiptRequested = True
            .Display
            '.Send 'this will send the email without review / not showing picture inserted

        End With

        Set outlookApp = Nothing
        Set outlookMail = Nothing
    End Sub

1 个答案:

答案 0 :(得分:0)

如果有人在寻找有关此主题的答案,我已对以下内容进行了修改,并对其进行了测试并可以正常工作。

Sub SendEmail()
    Dim outlookApp As Object
    Dim outlookMail As Object
    Dim sigString As String
    Dim Signature As String
    Dim insertPhoto As String
    Dim photoSize As String
    Set outlookApp = CreateObject("Outlook.Application")
    Set outlookMail = outlookApp.CreateItem(0)

    'Change only Mysig.htm to the name of your signature
    sigString = Environ("appdata") & _
                "\Microsoft\Signatures\Mysig.htm"
    If Dir(sigString) <> "" Then
        Signature = GetBoiler(sigString)
    Else
        Signature = ""
    End If

    insertPhoto = "C:\Users\store\Desktop\Presale.jpg" 'Picture path
    photoSize = "<img src=""cid:Presale.jpg""height=400 width=400>" 'Change image name here

    emailMessage = "<BODY style=font-size:11pt;font-family:Calibri>Dear " & titleName & " " & fullName & "," & _
                    "<p>I hope my email will find you very well." & _
                    "<p>Our <strong>sales preview</strong> starts on Thursday the 22nd until Sunday the 25th of November." & _
                    "<p>I look forward to welcoming you into the store to shop on preview.<p>" & _
                    "<p> It really is the perfect opportunity to get some fabulous pieces for the fast approaching festive season." & _
                    "<p>Please feel free to contact me and book an appointment." & _
                    "<p>I look forward to seeing you then." & _
                   "<p>" & photoSize & _
                    "<p>Kind Regards," & _
                    "<br>" & _
                    "<br><strong>My Name</strong>" & _
                    "<br>Assistant Store Manager" & _
                    "<p>"


    With outlookMail
        .To = clientEmail
        .CC = ""
        .BCC = ""
        .Subject = "PRIVATE SALE | IN STORE"
        .BodyFormat = 2
        .Attachments.Add insertPhoto, 1, 0
        .HTMLBody = emailMessage & Signature 'Including photo insert and signature
        .Importance = 2
        .ReadReceiptRequested = True
        .Display
        .Send

    End With

    Set outlookApp = Nothing
    Set outlookMail = Nothing
End Sub