Как отправить письмо в формате HTML?
Я мог бы позволить веб-приложению отправлять автоматические письма с помощью планировщика заданий Windows. Теперь я хочу отправить HTML-форматированный адрес электронной почты, используя следующий метод, который я написал для отправки писем.
Мой код:
protected void Page_Load(object sender, EventArgs e)
{
SmtpClient sc = new SmtpClient("mail address");
MailMessage msg = null;
try
{
msg = new MailMessage("[email protected]",
"[email protected]", "Message from PSSP System",
"This email sent by the PSSP system");
sc.Send(msg);
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (msg != null)
{
msg.Dispose();
}
}
}
Как это сделать? Я просто хочу выделить жирный текст с одной ссылкой и, возможно, одним изображением в письме.
Ответы
Ответ 1
Настройка isBodyHtml
- true
позволяет использовать теги HTML в теле сообщения:
msg = new MailMessage("[email protected]",
"[email protected]", "Message from PSSP System",
"This email sent by the PSSP system<br />" +
"<b>this is bold text!</b>");
msg.IsBodyHtml = true;
Ответ 2
Лучший способ отправить html-форматированный адрес электронной почты
Этот код будет находиться в Customer.htm "
<table>
<tr>
<td>
Dealer Company Name
</td>
<td>
:
</td>
<td>
#DealerCompanyName#
</td>
</tr>
</table>
Прочитать HTML файл с помощью System.IO.File.ReadAllText. получить весь HTML-код в строковой переменной.
string Body = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("EmailTemplates/Customer.htm"));
Замените определенную строку на свое пользовательское значение.
Body = Body.Replace("#DealerCompanyName#", _lstGetDealerRoleAndContactInfoByCompanyIDResult[0].CompanyName);
вызов SendEmail (строка Body) Функция и процедура отправки электронной почты.
public static void SendEmail(string Body)
{
MailMessage message = new MailMessage();
message.From = new MailAddress(Session["Email"].Tostring());
message.To.Add(ConfigurationSettings.AppSettings["RequesEmail"].ToString());
message.Subject = "Request from " + SessionFactory.CurrentCompany.CompanyName + " to add a new supplier";
message.IsBodyHtml = true;
message.Body = Body;
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Host = ConfigurationSettings.AppSettings["SMTP"].ToString();
smtpClient.Port = Convert.ToInt32(ConfigurationSettings.AppSettings["PORT"].ToString());
smtpClient.EnableSsl = true;
smtpClient.Credentials = new System.Net.NetworkCredential(ConfigurationSettings.AppSettings["USERNAME"].ToString(), ConfigurationSettings.AppSettings["PASSWORD"].ToString());
smtpClient.Send(message);
}
Ответ 3
Это работает для меня
msg.BodyFormat = MailFormat.Html;
а затем вы можете использовать html в своем теле
msg.Body = "<em>It great to use HTML in mail!!</em>"