Я надсилаю електронний лист за допомогою dotnet Framework. Ось шаблон, який я використовую для створення повідомлення:
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 повідомляє мені "Додаткові розриви рядків у цьому повідомленні були видалені". І повідомлення відображається так:
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 тощо ...
Для одержувачів електронної пошти важливо отримати правильно відформатований електронний лист, і я повинен припустити, що деякі з них використовують прогноз 2003 року. Я також не можу припустити, що вони будуть знати достатньо, щоб вимкнути функцію автоматичного очищення, щоб повідомлення було форматоване належним чином.
Я переглядав ці повідомлення в інших поштових клієнтах, і вони відображаються правильно
ще трохи інформації:
- Я використовую UTF-8 BodyEncoding (msg.BodyEncoding = System.Text.Encoding.UTF8)
- Msg.Body читається з закодованого текстового файлу UTF-8, і кожен рядок закінчується символом crlf.
Питання: Як змінити формат повідомлення, щоб уникнути цієї проблеми?
\r\n
. Це працювало для мене.