.NET 4.x Отправка писем в формате HTML с рисунками (не отображая их во вложении) - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Доброго всем дня. Возник вопрос: как отправить письмо HTML содержания с изображениями, не отображая эти изображения как вложения). Встретил вот такое решение, на C#, но не разобрался еще в самом решении этой задачи.
Листинг программы
  1. var mailMessage = new System.Net.Mail.MailMessage();
  2. var mailHTML = // определение тела письма со ссылками на изображения
  3. var images = new List<System.Net.Mail.LinkedResource>(); // список для временного хранения созданных ресурсов картинок
  4. // тело письма нужно просмотреть и для каждого тега img создать объект System.Net.Mail.LinkedResource
  5. // и поместить его в список Images. В исходном документе нужно заменить ссылку на изображение (значение свойства src)
  6. // на выражение "cid:{ИД ресурса}", где {ИД ресурса} - значение свойства ContentId созданного объекта LinkedResource
  7. // ...
  8. // Следующая строка создаёт альтернативное представление на основе текста письма с изменёнными ссылками
  9. var htmlView = AlternateView.CreateAlternateViewFromString(mailHtml, Encoding.UTF8, MediaTypeNames.Text.Html);
  10. // Добавляем к представлению созданные нами файлы ресурсов картинок
  11. images.ForEach(htmlView.LinkedResources.Add);
  12. // И последнее добавляем созданное альтернативное представление к письму
  13. mailMessage.AlternateViews.Add(htmlView);
  14. // Дальше остаётся заполнить стандартные свойства письма и отправить
Может кто-то решал подобную задачу и поделится? С уважением и всех благ

Решение задачи: «.NET 4.x Отправка писем в формате HTML с рисунками (не отображая их во вложении)»

textual
Листинг программы
  1. Imports System.Net
  2. Imports System.Net.Mail
  3. Imports System.Net.Mime
  4.  
  5. Public Class Form1
  6.  
  7.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.         Dim htmlBody As String = "<html><body><h1>Picture</h1><br><img src=""cid:Pic1""></body></html>"
  9.         Dim avHtml As AlternateView = AlternateView.CreateAlternateViewFromString(htmlBody, Nothing, MediaTypeNames.Text.Html)
  10.         Dim pic1 As New LinkedResource("C:\Users\username\Pictures\cyberforum\22135612674l.jpg", MediaTypeNames.Image.Jpeg)
  11.         pic1.ContentId = "Pic1"
  12.         avHtml.LinkedResources.Add(pic1)
  13.         Dim m As MailMessage = New MailMessage()
  14.         m.AlternateViews.Add(avHtml)
  15.  
  16.  
  17.         Dim fromAddress = New MailAddress("fhdhdhgdgdgfds@gmail.com", "From Name")
  18.         Dim toAddress = New MailAddress("fhgfhgfgjhf@bk.ru", "To Name")
  19.         Const fromPassword As String = "gjgjgffjhhfgj"
  20.  
  21.         Dim smtp = New SmtpClient() With {
  22.  .Host = "smtp.gmail.com",
  23.  .Port = 587,
  24.  .EnableSsl = True,
  25.  .DeliveryMethod = SmtpDeliveryMethod.Network,
  26.  .Credentials = New NetworkCredential(fromAddress.Address, fromPassword),
  27.  .Timeout = 20000
  28. }
  29.         m.From = New MailAddress("gjkgjkgjj@gmail.com", "From Name")
  30.         m.[To].Add(New MailAddress("ghjgjfjghf@bk.ru", "To Name"))
  31.         m.Subject = "картинка не как вложение"
  32.         smtp.Send(m)
  33.         MsgBox("")
  34.     End Sub
  35. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут