Outlook автоматически очищает мои разрывы строк и портит мой формат электронной почты - PullRequest
105 голосов
/ 29 октября 2008

Я отправляю электронное письмо, используя платформу dotnet. Вот шаблон, который я использую для создания сообщения:

Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%

Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For:  %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%

Когда сообщения получены в outlook, outlook сообщает мне: «В этом сообщении были удалены дополнительные разрывы строк». И сообщение выглядит так:

Date of Hire: 9/28/2001
Annual Salary: $100,000
Reason for Request: New Hire

Name of Voluntary Employee: Ronald Weasley Total Coverage Applied For:  $500,000 Guaranteed Coverage Portion: $300,000.00 Amount Subject to Medical Evident: $200,000

Обратите внимание, как Outlook некорректно удаляет необходимые разрывы строк после имени, EECoverageAmount и т. Д ...

Для получателей электронной почты важно правильно отформатировать электронную почту, и я должен предположить, что некоторые из них используют outlook 2003. Я также не могу предположить, что они будут знать достаточно, чтобы отключить функцию автоочистки, чтобы получить сообщение для форматирования должным образом.

Я просматривал эти сообщения в других почтовых клиентах, и они отображаются правильно

дополнительная информация:

  • Я использую кодирование BodyEncoding UTF-8 (msg.BodyEncoding = System.Text.Encoding.UTF8)
  • Сообщение msg.Body читается из текстового файла в кодировке UTF-8, и каждая строка заканчивается символом crlf.

Вопрос: Как мне изменить формат сообщения, чтобы избежать этой проблемы?

Ответы [ 11 ]

0 голосов
/ 29 октября 2008

Измените окончание вашей линии с crlf на cr или lf.

Я подозреваю, что в верхней части письма используется только cr (или lf), а Outlook ожидает, что остальная часть письма будет следовать тому же формату.

...