HTML 仅适用于使用 Outlook 应用程序(非默认邮件应用程序)的 iPhone 用户将附件变成纯文本

HTML attachment turns into plain text only for users on iPhones using Outlook app (non-default mail app)

我们有一个 C# 函数,它使用流编写器从 ASPX 文件创建 HTML 附件。生成带有 HTML 附件的电子邮件并发送给用户,此附件在所有 android 设备和 iphone 默认邮件应用程序上显示正常。但是,用户发现在 iPhone 上尝试使用 Outlook 应用程序打开时它会变成纯文本。

附件在所有桌面设备(Gmail、Outlook 等)上都能正确打开

它也适用于 iPhone 默认邮件应用程序并确认它仅在 Outlook 应用程序上失败。

我们还将文件下载到 PC 上,然后使用 Outlook 将其转发回 iPhone,根本没有更改文件并且工作正常。

//Only relevant code below

HttpContext.Current.Server.Execute(path, writer);
//path is filepath of aspx file
string msg = writer.ToString();

//filename is the html file
using (StreamWriter sw = new StreamWriter(filename,true)){
sw.write(msg);
sw.Dispose();
}

mail.Attachments.Add(new Attachment(filename));

因此,经过进一步调查,我发现在代码的更深处,我们仍然有来自先前版本的一行,当它被直接放入正文时,它强制将其转换为纯文本。奇怪的是,只有 IPhone 上的 Outlook 应用程序实际上受此影响。

//OLD:
contentType.MediaType = System.Net.Mime.MediaTypeNames.Text.Plain;

//NEW:
contentType.MediaType = System.Net.Mime.MediaTypeNames.Text.Html;