66 votes

Comment créer un corps multiligne en C# System.Net.Mail.MailMessage

Si vous créez la propriété body comme

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();

message.Body ="First Line \n second line";

J'ai aussi essayé

message.Body ="First Line" + system.environment + "second line";

Les deux ont été ignorés lorsque j'ai reçu le message (en utilisant outlook).

Avez-vous une idée de la façon d'obtenir plusieurs lignes ? J'essaie d'éviter l'encodage html afin que l'e-mail soit plus agréable à lire pour les filtres anti-spam.

merci

2voto

Charles Kincaid Points 21

La clé de tout ça, c'est quand tu as dit

en utilisant Outlook.

J'ai eu le même problème avec des e-mails au corps de texte parfaitement formaté. C'est Outlook qui en fait une poubelle. De temps en temps, il est assez gentil pour vous dire que " les sauts de ligne supplémentaires ont été supprimés ". En général, il fait juste ce qu'il veut et vous fait passer pour un idiot.

J'ai donc mis un corps laconique et j'ai mis mon beau texte formaté en pièce jointe. Vous pouvez soit faire cela, soit formater le corps en HTML.

2voto

s k Points 1016

Essayez ceci

IsBodyHtml = false,
BodyEncoding = Encoding.UTF8,
BodyTransferEncoding = System.Net.Mime.TransferEncoding.EightBit

Si vous souhaitez continuer à utiliser \r\n

J'ai réussi à faire fonctionner le mien après avoir essayé pendant une journée entière !

2voto

Ciro Corvino Points 1232

Essayez d'utiliser l'opérateur verbatim " @ "avant votre message :

message.Body = 
@"
FirstLine
SecondLine
"

Considérez que la distance du texte par rapport à la marge de gauche affecte également la distance réelle par rapport à la marge de gauche du corps de l'email

1voto

dotNet Zombie Points 124

Essayez d'utiliser un objet StringBuilder et utilisez la méthode appendline. Cela pourrait fonctionner.

1voto

Mario Favere Points 182

Parfois, vous ne voulez pas créer un e-mail html. J'ai résolu le problème de cette façon :

Remplacer \n par \t\n

La tabulation ne sera pas affichée, mais le saut de ligne fonctionnera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X