Мне нужно создать простое тестовое электронное письмо в коде. Это необходимо, потому что информация в электронном письме будет прочитана приложением.
Я создал следующее значение в постоянной строке в качестве настройки для моей электронной почты. Это те поля, которые я хочу иметь в электронном письме, потому что они требуются приложению.
public static string TestMail = @"
[Begin Message]
Name = {0}
Phone = {1}
Postalcode = {2}
HomeNumber = {3}
[End message]";
При отправке электронного письма с использованием приведенного ниже кода приложение, которому необходимо прочитать информацию из электронного письма, получает ее следующим образом:
=0D=0A [Begin Message]=0D=0A Name =3D nam=
e=0D=0A Phone =3D 0612345678=0D=0A Postalcode =3D =
1234ab=0D=0A HomeNumber =3D 5=0D=0A [End messa=
ge]=0D=0A =20
Код, который я использовал для отправки этого письма, выглядит следующим образом:
var mailBody = String.Format(Constants.TestMail, name, phone, postalCode, homeNumber);
var mail = new MailMessage
{
Subject = Constants.Subject,
Body = mailBody,
IsBodyHtml = false,
};
mail.To.Add(receveiver);
var smtpClient = new SmtpClient();
smtpClient.Send(mail);
Это не тот результат, которого я ожидал, и, немного покопавшись, я обнаружил, что проблема заключалась в том, что это все еще кажется HTML-письмом, хотя мне нужно, чтобы оно было обычным текстом. Читая об этой проблеме, я нашел это пример на VB.net в Интернете. Поэтому я изменил константу на приведенную ниже;
public static string TestMail = @"[Begin message]\r\nName = {0}\r\nPhone = {1}\r\nPostalcode = {2}\r\nHomenumber = {3}\r\n[End message]";
Затем я использовал следующий код для создания и отправки электронной почты моему клиенту (тестирование в Outlook)
var mail = new MailMessage
{
Subject = Constants.Subject,
};
var alternateView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(mailBody, Encoding.ASCII,"text/plain");
mail.AlternateViews.Add(alternateView);
mail.To.Add(receveiver);
var smtpClient = new SmtpClient();
smtpClient.Send(mail);
После запуска этого кода я получаю электронное письмо в своем внешнем виде (в данный момент не могу протестировать приложение), содержащее содержимое ниже;
[Start message]\r\nName = John\r\nPhone = 0612345678\r\nPostalcode = 1234ab\r\nHomeNumber = 5\r\n[End Message]
Последний результат не кажется мне простым текстовым письмом. Это просто у Outlook 2007 проблемы с отображением электронной почты? Или я все еще что-то упускаю? Я надеюсь, что кто-то может помочь мне здесь и может сказать мне, что происходит не так.