我通过网络进行了大量搜索,但找不到该问题的任何解决方案。 我的桌面应用程序需要通过用户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> " _
& "<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> " _
& "<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> " _
& "<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
答案 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'