Электронная почта C # HTML — альтернативный вид

#c# #asp.net #html-email

#c# #asp.net #html-электронная почта

Вопрос:

У меня возникла проблема с тестированием альтернативных видов при отправке электронных писем в формате HTML. Я создаю отправку почтового сообщения в виде обычного текста, но я включаю альтернативный вид HTML. Я пробовал использовать несколько почтовых клиентов, но мне не удалось просмотреть текстовую версию. Меня больше всего беспокоит то, что тот, кто использует обычный текстовый клиент, не увидит его правильно. Смотрите ниже код:

 MailMessage message = new MailMessage();

message.To.Add("email");
message.From = new MailAddress("fromaddress");
message.Subject = "subject"
//Plain text version of e-mail
message.Body = _formattedPlainText;
message.IsBodyHtml = false;

AlternateView htmlView = CreateHTMLView();

message.AlternateViews.Add(htmlView);
//message.AlternateViews.Add(plainTextView);

smtp.Send(message);

private AlternateView CreateHTMLView()
{
    AlternateView htmlView =  AlternateView.CreateAlternateViewFromString(_formattedHTML, null, System.Net.Mime.MediaTypeNames.Text.Html);

    //Code for adding embedded images...

    return htmlView;
}
  

Есть ли основания полагать, что текстовая версия не принимается, или вы знаете каких-либо клиентов, которые определенно могут получать электронные письма только в виде обычного текста?

Заранее спасибо

Обновить:

Вы можете принудительно использовать обычный текст в GMAIL, нажав стрелку параметров и выбрав опцию «Текст сообщения искажен?»

Комментарии:

1. Большинство современных программ чтения по умолчанию используют чтение в HTML. Вы могли бы попробовать открыть его в Pine в системе Linux, которая, я полагаю, удалит представление html. Возможно, существует простой способ заставить Outlook или другое приложение просматривать только обычный текст (для тестирования), но я не уверен в вариантах.

Ответ №1:

Есть ли основания полагать, что текстовая версия не принимается, или вы знаете каких-либо клиентов, которые определенно могут получать электронные письма только в виде обычного текста?

Нет, и СОСНА.

Для чтения электронной почты можно использовать команду mail в любой ОС * nix. Электронная почта будет отображаться только в текстовом формате.

Обновить

Один парень здесь утверждает, что GMAIL отображает электронные письма только в виде обычного текста, если ему предоставлена такая возможность. Я нахожу это неудобным выбором по умолчанию от Google, если это все еще так.

Комментарии:

1. @DarkBobG: хаха, я люблю PINE, это мой любимый почтовый клиент в Linux. Использую ее начиная со Slackware 95 🙂

2. Спасибо за быстрый ответ. Gmail определенно не выбирает для меня текстовую версию. Я собираюсь посмотреть, есть ли какие-либо настройки, с помощью которых я могу преобразовать это в обычный текст. Все еще ищу самый простой клиент с быстрой настройкой. Я видел источник электронного письма, и, насколько я могу судить, в нем определенно используется правильный mime-тип: Content-Type: multipart / alternative; boundary=»—boundary_0_510b3ccc-889b-4b81-9e66-d6fd828a410b»

Ответ №2:

Благодаря некоторым экспериментам я добился наилучших результатов таким образом:

Настройте два альтернативных вида, один HTML и один обычный текст. Затем оставьте сообщение MailMessage.Только тело (по умолчанию / не определено) и оставьте MailMessage.По умолчанию используется файл IsBodyHtml. Мой сегмент кода:

                 myMessage.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(HtmlMessage, new System.Net.Mime.ContentType("text/html")));
        myMessage.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(TextMessage, new System.Net.Mime.ContentType("text/plain")));
    //    myMessage.Body = HtmlMessage;
    //    myMessage.IsBodyHtml = true;
        myClient.UseDefaultCredentials = false;
        NetworkCredential credentials = new NetworkCredential("xxxx","xxxxx");
        myClient.Credentials = credentials;
        myClient.DeliveryMethod = SmtpDeliveryMethod.Network;
  

Я протестировал это с сообщениями, отправляемыми клиентам Windows Outlook и пользователям Mac, и, похоже, это работает просто отлично. Программное обеспечение почтового клиента выбирает вид. Мне все еще нужно протестировать, как это работает для таких клиентов, как приложения веб-почты. Ваш пробег может отличаться.

Боб