Как послать электронное письмо в формате обогащенного текста к Outlook?

Это работает отлично для отправки электронных писем (Outlook) в формате HTML путем присвоения строки типа текста/содержимого HTML как так:

using (MailMessage message = new MailMessage())
{
  message.From = new MailAddress("--@---.com");
  message.ReplyTo = new MailAddress("--@---.com");
  message.To.Add(new MailAddress("---@---.com"));
  message.Subject = "This subject";
  message.Body = "This content is in plain text";
  message.IsBodyHtml = false;

  string bodyHtml = "<p>This is the HTML <strong>content</strong>.</p>";

  using (AlternateView altView = AlternateView.CreateAlternateViewFromString(bodyHtml,
    new ContentType(MediaTypeNames.Text.Html)))
  {
    message.AlternateViews.Add(altView);
    SmtpClient smtp = new SmtpClient(smtpAddress);
    smtp.Send(message);
  }
}

Электронная почта правильно распознана как HTML в Outlook (2003).
Но если я пробую обогащенный текст:

MediaTypeNames.RichText;

Outlook не обнаруживает это, он отступает к простому тексту.
Как я посылаю электронное письмо в формате RTF?

6
задан Magnus Johansson 21 January 2010 в 13:40
поделиться

1 ответ

Есть, вы не можете легко сделать это легко использовать System.net.mail.

Богатый текст в Outlook отправляется в виде файла winmail.dat в мире SMTP (вне обмена).

Файл winmail.dat - это сообщение TNEF. Итак, вам нужно будет создать свой RichText внутри файла winmail.dat (отформатирован к правилам Tnef).

Однако это не все. Outlook использует специальную версию сжатого RTF, поэтому вам также нужно будет сжать ваш RTF вниз, прежде чем он добавлен в файл winmail.dat.

Нижняя строка, это трудно сделать, и если клиент действительно не нуждается в этой функциональности, я бы повторю его.

Это не то, что вы можете сделать с несколькими строками кода в .NET.

9
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: