J'envoie un e-mail en utilisant le framework dotnet. Voici le modèle que j'utilise pour créer le message:
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%
Lorsque les messages sont reçus dans Outlook, Outlook m'indique que "Les sauts de ligne supplémentaires dans ce message ont été supprimés". Et le message s'affiche comme ceci:
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
Notez comment Outlook supprime de manière incorrecte les sauts de ligne nécessaires après le nom, EECoverageAmount, etc.
Il est important que les destinataires des e-mails reçoivent un e-mail correctement formaté, et je dois supposer que certains d'entre eux utilisent Outlook 2003. Je ne peux pas non plus supposer qu'ils en sauront suffisamment pour arrêter la fonction de nettoyage automatique pour que le message se formate correctement.
J'ai vu ces messages dans d'autres clients de messagerie et ils s'affichent correctement
quelques informations supplémentaires:
- J'utilise UTF-8 BodyEncoding (msg.BodyEncoding = System.Text.Encoding.UTF8)
- Le msg.Body est lu à partir d'un fichier texte encodé en UTF-8, et chaque ligne se termine par un crlf.
Question: Comment modifier le format du message pour éviter ce problème?
\r\n
. Cela a fonctionné pour moi.