MailMessage c# - Как сделать его HTML и добавить изображения и т. д.?
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 ответов
на 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);
вы можете использовать следующую идею, чтобы взять страницу ASPX и отобразить ее в строку:
StringWriter writer = new StringWriter();
Server.Execute("Login.aspx", writer);
string html = writer.ToString();
Если вы затем установите MailMessage.IsBodyHtml в true вы можете отправить HTML-сообщение. Если вы хотите использовать изображения и другие вещи, убедитесь, что получатель письма может получить доступ к этим изображениям.
есть два способа сделать это:
вставьте изображения внутри вашей почты. (см. этот вопрос)
ссылка на изображения через атрибут src тега изображения внутри HTML-почты. Для этого вам нужно разместить файлы изображений где-нибудь на веб-сервере, к которому могут получить доступ получатели.
в обоих случаях вам нужно будет отправить письмо с HTML телом.
mailObj.IsBodyHtml = true;
для вашего вопроса о добавлении изображения в вашу электронную почту, если вы просите встраивание, вы можете использовать якорные теги HTML или прикрепить файл изображения к почте с помощью mailObj.Вложения.Думаю, метод Add ().
но лучший способ-отправить изображения в виде вложений, потому что некоторые брандмауэры просто блокируют встроенные изображения, но позволяют вложения. Таким образом, ваш лучше безопаснее в доставке контента, хотя это не идеальный способ.