Преобразование HTML-сообщения OpenPop.NET в System.Net.Mail.MailMessage становится текстовым/обычным

У меня есть необработанное электронное письмо (текст MIME), которое я анализирую с помощью OpenPop.Net, а затем конвертирую в System.Net.Mail.MailMessage.

Dim message As MailMessage
Dim openPopMsg As New OpenPop.Mime.Message(System.Text.Encoding.ASCII.GetBytes(mimeText))
message = openPopMsg.ToMailMessage()

Dim Client As SmtpClient
Client = New SmtpClient(account.Server, account.Port)
Client.Credentials = New System.Net.NetworkCredential(account.User, account.Password)
Client.EnableSsl = account.UseSSL
Client.DeliveryMethod = SmtpDeliveryMethod.Network
Client.Send(message)
Client.Dispose()

Электронное письмо отправлено, вложения доставлены нормально и т. д. Единственная проблема заключается в том, что содержимое электронного письма должно быть текстовым/html, но я получаю HTML как текстовый/обычный.

message.IsBodyHtml имеет значение Истина.

Как я могу изменить тип контента определенного раздела или, что еще лучше, сделать преобразование правильно?

Исходный мим-текст выглядит так (это всего лишь часть составного электронного письма):

----boundary_27_d254c44c-5b54-4df3-ac69-ef73c8b0158b
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3D=
utf-8"><html><header><style>p{margin-top: 0;margin-bottom: 0;line=
-height: 100%}ul,li{padding: 0px;margin: 0px;margin-top: 0;margin=
-bottom: 0}</style></header><body><p style=3D"text-align:left;"><=
span style=3D"font-bold:false;color:rgb(0,0,0);"><font face=3D"Ar=
ial" style=3D"font-size:12pt;" >Mira este es el subjetct: This is=
 an email test.</font></span></p><BR><BR><BR></body></html>

Отправленное электронное письмо имеет следующий MIME-текст:

----boundary_3_d722cdce-a270-41b5-aa4e-33aa9131512a
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3D=
utf-8"><html><header><style>p{margin-top: 0;margin-bottom: 0;line=
-height: 100%}ul,li{padding: 0px;margin: 0px;margin-top: 0;margin=
-bottom: 0}</style></header><body><p style=3D"text-align:left;"><=
span style=3D"font-bold:false;color:rgb(0,0,0);"><font face=3D"Ar=
ial" style=3D"font-size:12pt;" >Mira este es el subjetct: This is=
 an email test.</font></span></p><BR><BR><BR></body></html>

person supercoco    schedule 16.09.2014    source источник


Ответы (1)


После преобразования сообщения я сделал следующее:

message.AlternateViews(0).ContentType.MediaType = "text/html"

Это хорошо работает для этого конкретного случая, но...

  • Всегда ли это будет message.AlternateViews(0)?
  • Я бы предпочел, чтобы ToMailMessage() сделал преобразование напрямую
person supercoco    schedule 16.09.2014
comment
Мне эта документация тоже была непонятна. hpop.sourceforge.net/documentation/ я думал что последняя строка HTML content will be treated as the preferred view for the Body. Plain text content will be used for the Body when HTML is not available. означает именно то, что вы (и я) предпочитаете: автоматическое преобразование. (автопоп нугет 2.0.6.x) - person JP Hellemons; 08.11.2016