C# HTML格式的邮件消息,文本格式的AlternateView无效
有人能解释一下为什么这个代码不起作用吗C# HTML格式的邮件消息,文本格式的AlternateView无效,c#,mailmessage,C#,Mailmessage,有人能解释一下为什么这个代码不起作用吗 async Task Main() { using (var smtpClient = new SmtpClient(@"127.0.0.1", 25)) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; var from = new MailAddress(@"sender@mydomain.com"); var to = n
async Task Main()
{
using (var smtpClient = new SmtpClient(@"127.0.0.1", 25))
{
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
var from = new MailAddress(@"sender@mydomain.com");
var to = new MailAddress(@"receiver@mydomain.com");
using (var message = new MailMessage())
{
message.Subject = "Email Subject";
message.Body = "<html><head></head><body><h1>Hello World!</h1></body></html>";
message.IsBodyHtml = true;
message.From = from;
message.To.Add(to);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("Hello World!", null, MediaTypeNames.Text.Plain));
await smtpClient.SendMailAsync(message);
}
}
}
async Task Main()
{
使用(var smtpClient=新的smtpClient(@“127.0.0.1”,25))
{
smtpClient.DeliveryMethod=SmtpDeliveryMethod.Network;
var from=新邮件地址(@“sender@mydomain.com");
var to=新邮件地址(@“receiver@mydomain.com");
使用(var message=new MailMessage())
{
message.Subject=“电子邮件主题”;
message.Body=“你好,世界!”;
message.IsBodyHtml=true;
message.From=From;
message.To.Add(To);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(“helloworld!”,null,MediaTypeNames.Text.Plain));
等待smtpClient.SendMailAsync(消息);
}
}
}
输出信息为:
MIME版本:1.0,来自:sender@mydomain.com致:receiver@mydomain.com
日期:2016年5月12日14:51:30+0200主题:电子邮件主题内容类型:
多部分/备选方案;
边界=--边界_2_be88a42a-4d48-4096-b4e0-71fb7857809f
----边界_2_be88a42a-4d48-4096-b4e0-71fb7857809f内容类型:文本/普通;charset=美国ascii内容传输编码:
引用可打印
你好,世界!
----边界_2_be88a42a-4d48-4096-b4e0-71fb7857809f内容类型:文本/普通;charset=美国ascii内容传输编码:
引用可打印
你好,世界!
----边界_2_be88a42a-4d48-4096-b4e0-71fb7857809f--
此代码正在运行:
async Task Main()
{
using (var smtpClient = new SmtpClient(@"127.0.0.1", 25))
{
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
var from = new MailAddress(@"sender@mydomain.com");
var to = new MailAddress(@"receiver@mydomain.com");
using (var message = new MailMessage())
{
message.Subject = "Email Subject";
message.Body = "Hello World!";
message.IsBodyHtml = false;
message.From = from;
message.To.Add(to);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>Hello World!</h1></body></html>", null, MediaTypeNames.Text.Html));
await smtpClient.SendMailAsync(message);
}
}
}
async Task Main()
{
using (var smtpClient = new SmtpClient(@"127.0.0.1", 25))
{
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
var from = new MailAddress(@"sender@mydomain.com");
var to = new MailAddress(@"receiver@mydomain.com");
using (var message = new MailMessage())
{
message.Subject = "Email Subject";
message.From = from;
message.To.Add(to);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>Hello World!</h1></body></html>", null, MediaTypeNames.Text.Html));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("Hello World!", null, MediaTypeNames.Text.Plain));
await smtpClient.SendMailAsync(message);
}
}
}
async Task Main()
{
使用(var smtpClient=新的smtpClient(@“127.0.0.1”,25))
{
smtpClient.DeliveryMethod=SmtpDeliveryMethod.Network;
var from=新邮件地址(@“sender@mydomain.com");
var to=新邮件地址(@“receiver@mydomain.com");
使用(var message=new MailMessage())
{
message.Subject=“电子邮件主题”;
message.Body=“你好,世界!”;
message.IsBodyHtml=false;
message.From=From;
message.To.Add(To);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(“helloworld!”,null,MediaTypeNames.Text.Html));
等待smtpClient.SendMailAsync(消息);
}
}
}
产量不错
MIME版本:1.0,来自:sender@mydomain.com致:receiver@mydomain.com
日期:2016年5月12日14:46:52+0200主题:电子邮件主题内容类型:
多部分/备选方案;
边界=--边界_1_2d888597-e405-40cb-8bd4-1bfcba04fb44
----边界_1_2d888597-e405-40cb-8bd4-1bfcba04fb44内容类型:文本/普通;charset=美国ascii内容传输编码:
引用可打印
你好,世界!
----边界_1_2d888597-e405-40cb-8bd4-1bfcba04fb44内容类型:text/html;charset=美国ascii内容传输编码:
引用可打印
你好,世界!
----边界_1_2d888597-e405
-40cb-8bd4-1bfcba04fb44--
该代码正在运行:
async Task Main()
{
using (var smtpClient = new SmtpClient(@"127.0.0.1", 25))
{
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
var from = new MailAddress(@"sender@mydomain.com");
var to = new MailAddress(@"receiver@mydomain.com");
using (var message = new MailMessage())
{
message.Subject = "Email Subject";
message.Body = "Hello World!";
message.IsBodyHtml = false;
message.From = from;
message.To.Add(to);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>Hello World!</h1></body></html>", null, MediaTypeNames.Text.Html));
await smtpClient.SendMailAsync(message);
}
}
}
async Task Main()
{
using (var smtpClient = new SmtpClient(@"127.0.0.1", 25))
{
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
var from = new MailAddress(@"sender@mydomain.com");
var to = new MailAddress(@"receiver@mydomain.com");
using (var message = new MailMessage())
{
message.Subject = "Email Subject";
message.From = from;
message.To.Add(to);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>Hello World!</h1></body></html>", null, MediaTypeNames.Text.Html));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("Hello World!", null, MediaTypeNames.Text.Plain));
await smtpClient.SendMailAsync(message);
}
}
}
async Task Main()
{
使用(var smtpClient=新的smtpClient(@“127.0.0.1”,25))
{
smtpClient.DeliveryMethod=SmtpDeliveryMethod.Network;
var from=新邮件地址(@“sender@mydomain.com");
var to=新邮件地址(@“receiver@mydomain.com");
使用(var message=new MailMessage())
{
message.Subject=“电子邮件主题”;
message.From=From;
message.To.Add(To);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(“helloworld!”,null,MediaTypeNames.Text.Html));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(“helloworld!”,null,MediaTypeNames.Text.Plain));
等待smtpClient.SendMailAsync(消息);
}
}
}
输出也很好:
MIME版本:1.0,来自:sender@mydomain.com致:receiver@mydomain.com
日期:2016年5月12日15:07:24+0200主题:电子邮件主题内容类型:
多部分/备选方案;
边界=--边界_3_fa7662d6-404a-4c86-a775-373355aa41e2
----boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2内容类型:text/html;charset=美国ascii内容传输编码:
引用可打印
你好,世界!
----边界_3_fa7662d6-404a-4c86-a775-373355aa41e2内容类型:文本/普通;charset=美国ascii内容传输编码:
引用可打印
你好,世界!
----边界线fa7662d6-404a-4c86-a775-373355aa41e2--
编辑:有人能帮忙让html标签在输出中不被解释吗?我昨天遇到了完全相同的问题; 由于评论中指出的MSDN阅读,以下是我的理解 发送邮件时,Body属性专用于此处所述的电子邮件文本内容 使用Body属性指定文本版本,并使用 AlternateViews集合指定具有其他MIME类型的视图 无论出于何种原因,如果在设置正文内容后添加任何AlternateView,则正文将重置为纯文本 对我来说,你的最后一个例子似乎是让事情变得更有活力的方法
message.Subject = "Email Subject";
message.From = from;
message.To.Add(to);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("<html><head></head><body><h1>Hello World!</h1></body></html>", null, MediaTypeNames.Text.Html));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString("Hello World!", null, MediaTypeNames.Text.Plain));
await smtpClient.SendMailAsync(message);
message.Subject=“电子邮件主题”;
message.From=From;
message.To.Add(To);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(“helloworld!”,null,MediaTypeNames.Text.Html));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(“helloworld!”,null,MediaTypeNames.Text.Plain));
等待smtpClient.SendMailAsync(消息);
将MediaTypeNames.Text.Plain更改为MediaTypeNames.Text.html您在这里看过吗@梅尔哈迪克为什么?如果内容是纯文本,则将其设置为纯文本。@JaggenSWE此代码与第二个代码相同