.IsBodyHtml = true вызывает отправку пустого тела письма, но .IsBodyHtml = false отправляет содержимое тела - PullRequest
2 голосов
/ 31 марта 2012

У меня есть служба WCF, которая отправляет электронную почту на основе ввода пользователя.Мне стало известно, что недавно электронное письмо конкретного пользователя доставлялось без основного текста.Если для .IsBodyHtml установлено значение true, основной текст не передается;но, если для .IsBodyHtml задано значение false, тело имеет соответствующий текст.Тем не менее, он не выглядит непротиворечивым, поскольку это происходит только тогда, когда указанный адрес электронной почты пользователя установлен в качестве адреса «От».Технические детали:У нас есть почтовый сервер MS Exchange.Я сочиняю объект MailMessage, передавая его во встроенный класс SMTP для отправки сообщения.

Код был немного упрощен для краткости / ясности.Тем не менее, оригинальный код довольно стандартный / простой.email относится к объекту класса LINQ-to-SQL

MailMessage message = new MailMessage();
message.From = new MailAddress(email.fromAddress);
message.To.Add(email.toRecipient);
message.Subject = email.emailSubject;

//set email body
message.IsBodyHtml = true;
message.Body = email.emailBody;

Attachment attachmentFile = null;
if (email.hasAttachment == true)
{
    //retrieve attachments for emailID
    var attachments = from attach in db.EmailAttachments
                      where attach.emailID == emailID
                      select attach;

    foreach (var attachment in attachments)
    {//attach each attachment
        string filePath = Path.Combine(UPLOAD_DIRECTORY, emailID.ToString(), attachment.fileName);
        attachmentFile = new Attachment(filePath);
        message.Attachments.Add(attachmentFile); //set attachment from input path
    }
}

SmtpClient client = new SmtpClient(SMTP_SERVER, SMTP_PORT); //set SMTP server name/URL and port
client.Send(message); //try to send the SMTP email

1 Ответ

1 голос
/ 31 марта 2012

Поскольку проблема связана с пользователем, она, вероятно, связана с настройкой этого пользователя.

Войдите в систему под этим пользователем и откройте outlook

Выберите: Файл -> Параметры -> Почта

Прокрутите вниз до раздела «Формат сообщения»

Возможно, выбрано "Преобразовать в простой текстовый формат", измените его на "Преобразовать в формат HTML"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...