У меня проблемы с отправкой электронной почты с содержанием в виде обычного текста & HTML .
В Outlook 2007 сообщение в виде простого текста никогда не отображается.
А в почтовом клиенте Gmail по умолчанию отображается обычный текст . Мне нужно, чтобы сообщение HTML отображалось по умолчанию как в Outlook, так и в Gmail, но пользователь может переключиться на обычный текст, если такие настройки установлены в этой системе.
Я использую следующий код C # для отправки писем:
private void SendEmail(string server, string from, string userName, string password, int port , string recipients)
{
MailMessage message = new MailMessage(from,recipients);
message.Subject = "This email message has multiple views.";
message.From = new MailAddress(from);
message.To.Add(recipients);
message.IsBodyHtml = false;
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>This is some HTML text2</h1></body></html>", null, MediaTypeNames.Text.Html));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("This is some plain text2", null, MediaTypeNames.Text.Plain));
SmtpClient client = new SmtpClient(server);
client.Port = port;
NetworkCredential SMTPUserInfo = new NetworkCredential(userName, password);
client.UseDefaultCredentials = false;
client.Credentials = SMTPUserInfo;
client.Send(message);
}
Проблема с этим кодом заключается в том, что (я не уверен), что в Outlook 2007 содержимое электронной почты первоначально отображается, как показано на рисунке ниже (по умолчанию текст HTML отображается как обычный текст):
Когда я щелкаю правой кнопкой мыши и выбираю «Отображать как HTML», содержимое электронной почты отображается следующим образом (отображение тела HTML):
![enter image description here](https://i.stack.imgur.com/tCGIB.png)
И когда я использую gmail.com для просмотра электронной почты, содержимое электронной почты отображается следующим образом (по умолчанию отображается обычный текст):
![enter image description here](https://i.stack.imgur.com/yR9KM.png)
РЕДАКТИРОВАТЬ 1: Как и предполагалось, я внес изменения в свой код, теперь я могу видеть содержимое электронной почты в формате HTML в Gmail . Но в Outlook 2007 после установки обычного текста в качестве представления по умолчанию я вижу теги HTML в виде строки, и он не показывает простой текст, который я набросал, что немного отличается от HTML. Кроме того, как я проверяю текстовое электронное письмо в Gmail, так как теперь в Gmail я получаю только HTML-представление, и я не нашел способа увидеть текстовое представление, хотя я нажал на вид оригинала и изменил вид = ом, чтобы посмотреть = дом в URL, как я читал его в Google где-то.
private void SendEmail(string server, string from, string userName, string password, int port , string recipients)
{
MailMessage message = new MailMessage(from,recipients);
message.Subject = "This email message has multiple views.";
message.From = new MailAddress(from);
message.To.Add(recipients);
message.Body = "This is some plain text2";
message.IsBodyHtml = true;
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>This is some HTML text2</h1></body></html>", null, MediaTypeNames.Text.Html));
//message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("This is some plain text2", null, MediaTypeNames.Text.Plain));
SmtpClient client = new SmtpClient(server);
client.Port = port;
NetworkCredential SMTPUserInfo = new NetworkCredential(userName, password);
client.UseDefaultCredentials = false;
client.Credentials = SMTPUserInfo;
client.Send(message);
}