如何在c#中发送多部分MIME消息?

时间:2011-03-30 08:23:24

标签: c# email mime

我想发送包含HTML组件和纯文本组件的多部分MIME邮件,供电子邮件客户端无法处理HTML的人使用。 System.Net.Mail.MailMessage类似乎不支持此功能。你是怎么做到的?

1 个答案:

答案 0 :(得分:39)

噢噢,这真的很简单......但是我会在这里留下答案给那些像我一样在谷歌搜索之前找到答案的人......:)

归功于this article

使用AlternateViews,如下所示:

//create the mail message
var mail = new MailMessage();

//set the addresses
mail.From = new MailAddress("me@mycompany.com");
mail.To.Add("you@yourcompany.com");

//set the content
mail.Subject = "This is an email";

//first we create the Plain Text part
var plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");
//then we create the Html part
var htmlView = AlternateView.CreateAlternateViewFromString("<b>this is bold text, and viewable by those mail clients that support html</b>", null, "text/html");
mail.AlternateViews.Add(plainView);
mail.AlternateViews.Add(htmlView);

//send the message
var smtp = new SmtpClient("127.0.0.1"); //specify the mail server address
smtp.Send(mail);