在C#中发送带有附件的电子邮件时未显示纯文本

时间:2017-08-08 06:21:01

标签: c#

当我发送带有附件的html电子邮件时,Thunderbird上的纯文本没有显示任何内容,特别是当附加文件是docx,pdf等时,txt文件在我测试时没问题。

如果我没有附加任何文件,它的效果很好,如果我切换其视图设置,Thunderbird会正确显示Html文本和纯文本。

using(var mail = new MailMessage()){
    // ...omit
    var alternateView = AlternateView.CreateAlternateViewFromString("<h1>TEST</h1>", Encoding, MediaTypeNames.Text.Html);
    alternateView.TransferEncoding = TransferEncoding.SevenBit;
    mail.AlternateViews.Add(alternateView);

    mail.Attachments.Add(new Attachment("path to a file"));
    // ...omit
}

我试过https://stackoverflow.com/a/2828438/366049但没有运气。

- EDITED--
正如Caius Jard建议的那样,我尝试了以下内容,结果如下。

  • 将其设置为主体+ HTML作为备用视图
    它有效,但这意味着我必须准备纯文本和HTML文本。如果我没有附加任何文件,Thunderbird会显示来自html文本删除标签的纯文本。我一直想要这种行为,因为输入文本是由我们的用户创建的。否则我需要从html中检索纯文本。
  • 将文本和HTML设置为备用视图,无主体
    Thunderbird中的纯文本和Html文本设置都显示文本备用视图。
  • 将文本设置为主体和文本alternateview以及具有HTML alternateview
    即使我切换其视图设置,Thunderbird也会显示文字备用视图。

根据这些实验,一个简单的替代视图优于html替代视图和主体。

1 个答案:

答案 0 :(得分:0)

虽然您的问题似乎并不包含演示如何设置明文的示例代码,但请尝试

  • 将其设置为主体+ HTML作为备用视图
  • 将文本和HTML设置为备用视图,无主体
  • 将文本设置为主体和文本alternateview以及具有HTML alternateview

我有兴趣知道这些对雷鸟有哪些作用。