Меня очень смущает проблема с отправкой составных писем в ASP.NET. Я использую код, который, я уверен, работал раньше, но в полученном электронном письме нет тела.
Ключевой бит кода таков:
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainBody, null, MediaTypeNames.Text.Plain));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html));
Я могу убедиться, что plainBody
является допустимым текстом, а htmlBody
— допустимым HTML. Кроме того, я создаю очень простое MailMessage
с темой, от и до. Я не устанавливаю никаких других свойств MailMessage
и отправляю с помощью стандартного System.Net.Mail.SmtpClient, используя учетные данные Google, которые я использовал много раз раньше.
Когда письмо приходит, оно оказывается совершенно пустым.
Если я заменю две приведенные выше строки следующими (без других изменений), то электронное письмо в формате HTML будет получено правильно.
message.Body = htmlBody;
message.IsBodyHtml = true;
Так что может быть причиной моих пустых электронных писем? Я попытался упростить HTML вплоть до одного слова, заключенного в теги <b>
, чтобы оно не было связано с содержимым тела, и, как я уже сказал, я использовал подобный код много раз и без проблем. Я проверил получение электронных писем в GMail и Office 365, оба с одинаковым результатом.
Предложения очень приветствуются.