Как отправить многопользовательские сообщения MIME в С#?

Я хочу отправить многопользовательские сообщения MIME с компонентом HTML плюс текстовый компонент для людей, чьи почтовые клиенты не могут обрабатывать HTML. Класс System.Net.Mail.MailMessage, похоже, не поддерживает это. Как вы это делаете?

Ответы

Ответ 1

D'oh, это действительно просто... но я оставлю ответ здесь для всех, кто, как и я, смотрел на SO для ответа до Googling...:)

Кредит в этой статье.

Используйте AlternateViews, например:

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

//set the addresses
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");

//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);