通过带有html正文的outlook发送的嵌入图像不会显示在智能手机上

时间:2015-12-26 16:46:27

标签: c# html vb.net outlook

我通过网络进行了大量搜索,但找不到该问题的任何解决方案。 我的桌面应用程序需要通过用户outlook发送电子邮件。 一切正常,除了智能手机上缺少嵌入式图像(在iPhone和少数Android手机上测试)。 也在本地网络之外的Outlook客户端上测试过(我提到这是因为html图像的' src'在发送者的本地网络上)并且一切正常(我正在使用&#34 ; cid"为路径),所以问题可能不是图像的路径。

以下是我的测试代码的重要部分:

 Public Sub Test()
        Dim file As String = "\\netapp2\Public\All\INTERNET PROJECTS\Pf-PMS\jonathana\DIVISION REPORT 25-12-2015(2)\DIVISION REPORT 25-12-2015-04-58-45.xlsm"
        Dim filetosave As String = "\\netapp2\Public\All\INTERNET PROJECTS\Pf-PMS\jonathana\DIVISION REPORT 25-12-2015(4)\IMAGES"
        Dim a() As String = {filetosave & "\backlog.png", filetosave & "\Teams.png", filetosave & "\q.png"}

        Dim b = "<div>" _
& "<p>" _
& "text*text*text " & Now.ToString & "<br/><br/>" & "text*text*text" _
& "<br/>" _
& "text*text*text" _
& "<br/>" _
& "text*text*text" _
& "<br/>" _
& "<br/>" _
& "<u><b>text*text*text</u></b> " _
& "<br/>" _
& "<img alt='BACKLOG TABLE' hspace=0 src='cid:backlog.png' align=baseline border=0>&nbsp;" _
& "<br/>" _
& "</p>" _
& "</div> " _
& "<br/>" _
& "<br/>" _
& "<div> " _
& "<p>" _
& "<u><b>text*text*text </u></b>" _
& "<br/>" _
& "<IMG alt='ORANGE TEAMS DISTRIBUTION' hspace=0 src='cid:Teams.png' align=baseline border=0>&nbsp;" _
& "<br/>" _
& "</p>" _
& "</div> " _
& "<br/>" _
& "<br/>" _
& "<div> " _
& "<p>" _
& "<u><b>text*text*text </u></b>" _
& "<br/>" _
& "<IMG alt='DISTRIBUTION' hspace=0 src='cid:q.png' align=baseline border=0>&nbsp;" _
& "<br/>" _
& "</p>" _
& "</div> " _
& "<br/>"


        Dim subject As String = text*text*text"
        SendHtmlEmailMessegeWithMultipleAtachments(subject, b, GeneralInformation.InfoStructue.UserEmail & ";XXX@012.net.il", "", "DIVISION_REPORT", a)
    End Sub

    Sub SendHtmlEmailMessegeWithMultipleAtachments(ByVal sSubject As String, ByVal sBody As String, ByVal sTo As String, ByVal sCC As String, _
                     ByVal sDisplayname As String, Optional ByVal sFilename() As String = Nothing)

        Try

            Dim oApp As Interop.Outlook._Application
            oApp = New Interop.Outlook.Application

            Dim oMsg As Interop.Outlook._MailItem
            oMsg = oApp.CreateItem(Interop.Outlook.OlItemType.olMailItem)

            oMsg.Subject = sSubject
            oMsg.To = sTo
            oMsg.CC = sCC
            oMsg.HTMLBody = "<html><body dir=RTL>" & sBody & "</body></html>"


            Dim strN As String = sDisplayname


            If sFilename.Length > 0 Then
                Dim sBodyLen As Integer = Int(sBody.Length)
                Dim oAttachs As Interop.Outlook.Attachments = oMsg.Attachments
                Dim oAttach As Interop.Outlook.Attachment

                For Each itm In sFilename
                    oAttach = oAttachs.Add(itm.ToString)
                Next


            End If
            oMsg.Save()
            oMsg.Send()


            oApp = Nothing
            oMsg = Nothing
            IsOpen = Nothing

        Catch ex As Exception
            MsgBox("ERROR:" & ex.ToString, vbCritical + vbMsgBoxRight, "ERROR")
        End Try

1 个答案:

答案 0 :(得分:0)

您必须将PR_ATTACH_CONTENT_ID属性设置为与HTML正文中图像的cid属性匹配的值。

oAttach = oAttachs.Add(itm.ToString)
oAttach.PropertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/proptag/0x3712001F", "backlog.png'