C#邮件消息字符串格式

C#邮件消息字符串格式,c#,mailmessage,C#,Mailmessage,我正试图让字符串排列在电子邮件中。当我设置邮件正文时,一切看起来都很好,但当我收到邮件时,事情并没有排好 MailMessage email = new MailMessage(); //...setup from/to/host/port etc StringBuilder data = new StringBuilder(); data.AppendLine(string.Format("{0, -20} {1, -20}",

我正试图让字符串排列在电子邮件中。当我设置邮件正文时,一切看起来都很好,但当我收到邮件时,事情并没有排好

        MailMessage email = new MailMessage();
        //...setup from/to/host/port etc
        StringBuilder data = new StringBuilder();

        data.AppendLine(string.Format("{0, -20} {1, -20}", "Id:", "26"));
        data.AppendLine(string.Format("{0, -20} {1, -20}", "Name:", "Jeff"));
        // this looks fine in console
        Console.WriteLine(data.ToString());

        email.Body = data.ToString();

        // this looks fine in console
        Console.WriteLine(email.Body);

当我收到这封电子邮件时,它的格式不像电子邮件那样排列整齐。正文中有它。

默认情况下,正文使用
us ascii
编码

试用

email.BodyEncoding=System.Text.Encoding.UTF8


注意:我没有测试过,这只是猜测。

让我猜一下:字体是非比例的(例如Arial)。将您的邮件程序设置为使用monospace字体(例如Courier New),或者按照@ThomasWeller的建议使用monospace,或者使用HTML来排列邮件。似乎没有任何更改。添加
email.IsBodyHtml=true也许你的电子邮件提供商正在按照它所希望的方式处理纯文本?还要确保使用Monoscape字体。似乎如果用户可以在他们的客户端上使用他们想要的任何字体,那么我对此无能为力。我猜是HTML,但他们也必须启用它/默认情况下,大多数电子邮件查看器支持基本HTML。