Встраивать документы, используя LinkedResources для MailMessage

Я использую следующий код для встраивания изображений в мое 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

2 ответа

Попробуйте использовать cid: вместо cdi:, Это одна ошибка, которая приходит на ум.

Попробуй использовать

href="cid:companylogo 

(с "cid" вместо "cdi", как предложил Jakob Mygind) и установите для него contentId, который вы указали для LinkedResource.

Также, при установке пути к файлу, хорошо использовать метод HostingEnvironment.MapPath() (который аналогичен Url.Content() веб-проектов). Он будет работать с чем-то вроде:

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

Надеюсь, поможет!

;)

Другие вопросы по тегам