【发布时间】:2016-09-08 08:21:57
【问题描述】:
谁能解释为什么这段代码不起作用:
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);
}
}
}
输出消息是:
MIME 版本:1.0 发件人:sender@mydomain.com 收件人:receiver@mydomain.com 日期:2016 年 5 月 12 日 14:51:30 +0200 主题:电子邮件主题内容类型: 多部分/替代; 边界=--boundary_2_be88a42a-4d48-4096-b4e0-71fb7857809f
----boundary_2_be88a42a-4d48-4096-b4e0-71fb7857809f 内容类型:文本/纯文本; charset=us-ascii 内容传输编码: 引用可打印
世界你好!
----boundary_2_be88a42a-4d48-4096-b4e0-71fb7857809f 内容类型:文本/纯文本; charset=us-ascii 内容传输编码: 引用可打印世界你好! ----boundary_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);
}
}
}
输出很好
MIME 版本:1.0 发件人:sender@mydomain.com 收件人:receiver@mydomain.com 日期:2016 年 5 月 12 日 14:46:52 +0200 主题:电子邮件主题内容类型: 多部分/替代; 边界=--boundary_1_2d888597-e405-40cb-8bd4-1bfcba04fb44
----boundary_1_2d888597-e405-40cb-8bd4-1bfcba04fb44 内容类型:文本/纯文本; charset=us-ascii 内容传输编码: 引用可打印
世界你好! ----boundary_1_2d888597-e405-40cb-8bd4-1bfcba04fb44 内容类型:text/html; charset=us-ascii 内容传输编码: 引用可打印
世界你好!
----boundary_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.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);
}
}
}
输出也不错:
MIME 版本:1.0 发件人:sender@mydomain.com 收件人:receiver@mydomain.com 日期:2016 年 5 月 12 日 15:07:24 +0200 主题:电子邮件主题内容类型: 多部分/替代; 边界=--boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2
----boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2 Content-Type: text/html; charset=us-ascii 内容传输编码: 引用可打印
世界你好!
----boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2 内容类型:text/plain; charset=us-ascii 内容传输编码: 引用可打印世界你好! ----boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2--
编辑:任何人都可以帮助在输出中不解释 html 标签吗?
【问题讨论】:
-
将 MediaTypeNames.Text.Plain 更改为 MediaTypeNames.Text.Html
-
@merhardik 为什么会这样?如果内容是纯文本,则将其设置为纯文本。
-
@JaggenSWE 此代码与第二个代码相同
标签: c# mailmessage