0

我正在使用以下代码将图像嵌入到我的 MailMessage 中。我想要做的是将文档(pdf 或 docx)嵌入到电子邮件中。

我已经尝试使用指向 href="cdi:myDoc.pdf" 的链接的超链接,但这不起作用。我也尝试过使用 MailMessage.Attachments.Add() 但在附件部分添加文档,而不是在消息中嵌入文档。

任何人如何在邮件中嵌入文档?我知道 Outlook 能够将附件放在邮件正文中,但我不知道如何通过 mailMessage 进行操作。

谢谢苏珊

Sub MultiPartMime()
Dim mail As New MailMessage()

mail.From = New MailAddress("me@mycompany.com")
mail.To.Add("you@yourcompany.com")

mail.Subject = "This is an email"

Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString("<b>this is bold text, and viewable by <img src=""cdi:companylogo""> those mail clients that support html</b>", Nothing, "text/html")

LinkedResource logo = new LinkedResource( "c:\temp\logo.gif" )
logo.ContentId = "companylogo"
htmlView.LinkedResources.Add(logo)


mail.AlternateViews.Add(htmlView)


'send the message
Dim smtp As New SmtpClient("127.0.0.1") 'specify the mail server address
smtp.Send(mail)
End Sub 'MultiPartMime
4

2 回答 2

2

尝试使用cid:而不是cdi:. 这是我想到的一个错误。

于 2012-02-20T13:46:59.570 回答
1

尝试使用

href="cid:companylogo 

(使用“ cid ”而不是“cdi”,就像 Jakob Mygind 建议的那样)并将其设置为您为 LinkedResource 指定的 contentId。

此外,在设置文件的路径时,最好使用 HostingEnvironment.MapPath() 方法(与 Web 项目的 Url.Content() 相同。它会与类似的东西一起使用:

LinkedResource logo = new LinkedResource(HostingEnvironment.MapPath("c:\temp\logo.gif"));

希望能帮助到你!

;)

于 2013-02-05T13:12:33.230 回答