【问题标题】:Formatting a plain text e-mail in C#在 C# 中格式化纯文本电子邮件
【发布时间】:2011-03-18 07:41:45
【问题描述】:

我正在尝试使用纯文本打印电子邮件中的表格。 我有以下代码:

string body = string.Format("{0,-30}{1,-30}{2,-50}{3,-40}",
                                   "Col1", "Col2", "Col2", “Col4”);

body += string.Format("{0,-30}{1,-30}{2,-50}{3,-40}",
                                value1, value2, value3, value4);

Microsoft.Office.Interop.Outlook.ApplicationClass myOutlookApplication = null;
myOutlookApplication = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.MailItem myNewMail = 
    (Microsoft.Office.Interop.Outlook.MailItem)myOutlookApplication.CreateItem( 
      Microsoft.Office.Interop.Outlook.OlItemType.olMailItem );            

myNewMail.To = recipient;
myNewMail.Subject = subject;
myNewMail.Body = body;
myNewMail.BodyFormat = OlBodyFormat.olFormatPlain;            

myNewMail.Send();

我遇到的问题是正文的文本没有对齐。它似乎也将文本包装在邮件中。谁能告诉我我在这里做错了什么?

【问题讨论】:

    标签: c# email outlook office-interop


    【解决方案1】:

    这是由于字体。如果你想让它对齐,你需要像你的代码编辑器那样使用固定宽度的字体。

    否则,您可以尝试使用 TAB 进行某些操作。但这可能很棘手。

    【讨论】:

      【解决方案2】:

      仅在以下情况下以纯文本创建表格(或实际模仿其行为)才有效:

      1. 表中的值与列的宽度完全相同。这是你(程序员)应该注意的事情,当文本太短时在文本后面加上空格,或者如果文本太长则剪掉文本。

      2. 接收文本的用户正在使用等宽字体 (http://en.wikipedia.org/wiki/Monospaced_font) 来查看表格。不幸的是,如果您通过电子邮件发送表格,那将超出您的控制范围......

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 1970-01-01
        • 2011-07-15
        • 2014-06-05
        • 1970-01-01
        • 1970-01-01
        • 2011-01-13
        • 2017-06-28
        • 1970-01-01
        相关资源
        最近更新 更多