我在发送HTML电子邮件时遇到了测试备用视图的问题。我正在创建以纯文本形式发送邮件,但我包含HTML备用视图。我曾尝试使用多个电子邮件客户端,但我无法看到纯文本版本。我主要担心的是,使用纯文本客户端的人将无法正确查看。请参阅下面的代码:
MailMessage message = new MailMessage();
message.To.Add("email");
message.From = new MailAddress("fromaddress");
message.Subject = "subject"
//Plain text version of e-mail
message.Body = _formattedPlainText;
message.IsBodyHtml = false;
AlternateView htmlView = CreateHTMLView();
message.AlternateViews.Add(htmlView);
//message.AlternateViews.Add(plainTextView);
smtp.Send(message);
private AlternateView CreateHTMLView()
{
AlternateView htmlView = AlternateView.CreateAlternateViewFromString(_formattedHTML, null, System.Net.Mime.MediaTypeNames.Text.Html);
//Code for adding embedded images...
return htmlView;
}
是否有理由相信没有收到纯文本版本,或者您知道哪些客户肯定只能接收纯文本电子邮件?
提前致谢
更新:
您可以通过按选项箭头并选择“消息文字乱码?”选项在GMAIL中强制显示纯文本。
答案 0 :(得分:1)
是否有理由相信未收到纯文本版本 或者你知道哪些客户肯定只能收到 纯文本电子邮件?
不,PINE。
您可以在任何* nix操作系统中使用mail命令来阅读电子邮件。它只会以文本格式显示电子邮件。
<强>更新强>
A guy here,声称如果给出选项,GMAIL ONLY会以纯文本显示电子邮件。如果情况仍然如此,我发现谷歌的默认选择很尴尬。
答案 1 :(得分:1)
通过一些实验,我得到了最好的结果:
设置两个备用视图,一个HTML和一个纯文本。 然后,单独保留MailMessage.Body(默认/未定义)和 默认情况下保留MailMessage.IsBodyHtml。我的代码段:
myMessage.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(HtmlMessage, new System.Net.Mime.ContentType("text/html")));
myMessage.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(TextMessage, new System.Net.Mime.ContentType("text/plain")));
// myMessage.Body = HtmlMessage;
// myMessage.IsBodyHtml = true;
myClient.UseDefaultCredentials = false;
NetworkCredential credentials = new NetworkCredential("xxxx","xxxxx");
myClient.Credentials = credentials;
myClient.DeliveryMethod = SmtpDeliveryMethod.Network;
我已经使用发送到Windows Outlook客户端和Mac用户的消息对此进行了测试,它似乎工作得很好。电子邮件客户端软件选择视图。我仍然需要测试它如何适用于webmail应用程序等客户端。您的里程可能会有所不同。
鲍勃