Встраивать документы, используя LinkedResources для MailMessage - PullRequest
0 голосов
/ 13 января 2012

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

2 голосов
/ 20 февраля 2012

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

1 голос
/ 05 февраля 2013

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

href="cid:companylogo 

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

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

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

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

;)

...