MailMessage c # - Как сделать это HTML и добавить изображения и т. Д.? - PullRequest
18 голосов
/ 24 октября 2011
string to = "email@hotmail.co.uk";
 string body = "Test";
 SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
 MailMessage mailObj = new MailMessage(urEmail, to, subject, body);
 SMTPServer.Send(mailObj);

Вот так я сейчас отправляю тестовое письмо.Как мне сделать этот HTML-код и сделать так, чтобы электронное письмо выглядело лучше, добавляя изображения и т. Д.?

Спасибо

Ответы [ 5 ]

36 голосов
/ 24 октября 2011

На MailMessage установите для свойства IsBodyHtml значение true.

string to = "email@hotmail.co.uk";
string body = "Test";
SmtpClient SMTPServer = new SmtpClient("127.0.0.1");
MailMessage mailObj = new MailMessage(urEmail, to, subject, body);

mailObj.IsBodyHtml = true; // This line

SMTPServer.Send(mailObj);
7 голосов
/ 24 октября 2011

Вы должны установить mailObj .IsBodyHtml = true;

2 голосов
/ 24 октября 2011

Вы можете использовать следующую идею, чтобы взять страницу ASPX и отобразить ее в строку:

StringWriter writer = new StringWriter();
Server.Execute("Login.aspx", writer);
string html = writer.ToString();

Если вы затем установите для MailMessage.IsBodyHtml значение true, вы можете отправить сообщение HTML.Если вы хотите использовать изображения и другие материалы, убедитесь, что получатель электронной почты может получить доступ к этим изображениям.

1 голос
/ 24 октября 2011

Есть два способа сделать это:

  1. Вставить изображения в вашу почту.(см. этот вопрос )

  2. Ссылка на изображения через атрибут src тега image внутри вашей HTML-почты.Для этого вам нужно разместить файлы изображений где-нибудь на веб-сервере, к которому получатели могут получить доступ.

В обоих случаях вам нужно будет отправить письмо с html телом.

mailObj.IsBodyHtml = true;
0 голосов
/ 24 октября 2011

На ваш вопрос о добавлении изображения в ваше электронное письмо, если вы запрашиваете встраивание, вы можете использовать теги привязки HTML или прикрепить файл изображения к письму с помощью метода mailObj.Attachments.Add (), я думаю.

Но лучший способ - отправлять изображения в виде вложений, поскольку некоторые брандмауэры просто блокируют встроенные изображения, но разрешают вложения. Так что вам будет безопаснее доставлять контент, хотя это не идеальный способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...