有人能解释一下为什么这段代码不起作用吗:
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-Version: 1.0 发件人: sender@mydomain.com 收件人: receiver@mydomain.com 日期: 2016年5月12日14:51:30 +0200 主题: 邮件主题 内容类型: multipart/alternative; boundary=--boundary_2_be88a42a-4d48-4096-b4e0-71fb7857809f
----boundary_2_be88a42a-4d48-4096-b4e0-71fb7857809f 内容类型: text/plain; 字符集=us-ascii 内容传输编码: quoted-printable
Hello World!
----boundary_2_be88a42a-4d48-4096-b4e0-71fb7857809f 内容类型: text/plain; 字符集=us-ascii 内容传输编码: quoted-printableHello World! ----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-Version: 1.0 From: sender@mydomain.com To: receiver@mydomain.com Date: 12 May 2016 14:46:52 +0200 Subject: Email Subject Content-Type: multipart/alternative; boundary=--boundary_1_2d888597-e405-40cb-8bd4-1bfcba04fb44
----boundary_1_2d888597-e405-40cb-8bd4-1bfcba04fb44 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable
Hello World! ----boundary_1_2d888597-e405-40cb-8bd4-1bfcba04fb44 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: quoted-printable
Hello World!
----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 内容类型: text/html; 字符集=us-ascii 内容传输编码: quoted-printable
Hello World!
----boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2 内容类型: text/plain; 字符集=us-ascii 内容传输编码: quoted-printableHello World! ----boundary_3_fa7662d6-404a-4c86-a775-373355aa41e2--
编辑:有谁可以帮助使输出中不解释 HTML 标签?