Встраивать документы, используя 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"));
Надеюсь, поможет!
;)