C#.NET采用HTML模板發(fā)送電子郵件完整實(shí)例
本文實(shí)例講述了C#.NET采用HTML模板發(fā)送電子郵件的方法,是非常實(shí)用的技巧。分享給大家供大家參考。具體方法如下:
要使用html模板進(jìn)行發(fā)送郵件,需要準(zhǔn)備以下幾項(xiàng)工作:
1)HTML模板
2)替換函數(shù)(替換模板中綁定的變量)
3)郵件函數(shù)(發(fā)送郵件)
一、HTML模板
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>HTML Report</title> </head> <body> <p>$USER_NAME$:</p> <p>My name is $NAME$</p> <p >This is a Test Email,<br /> $MY_NAME$</p> </body> </html>
其中USER_NAME、NAME、MY_NAME這三個(gè)變量用$符號(hào)包裹進(jìn)行標(biāo)識(shí),是需要被替換的字符串,它會(huì)在下面的替換函數(shù)中被動(dòng)態(tài)替換。
二、替換函數(shù)
/// <summary>
///替換模板中的字段值
/// </summary>
public string ReplaceText(String userName,string name,string myName)
{
string path = string.Empty;
path = HttpContext.Current.Server.MapPath("EmailTemplate\\emailTemplate.html");
if (path == string.Empty)
{
return string.Empty;
}
System.IO.StreamReader sr = new System.IO.StreamReader(path);
string str = string.Empty;
str = sr.ReadToEnd();
str = str.Replace("$USER_NAME$", userName);
str = str.Replace("$NAME$", name);
str = str.Replace("$MY_NAME$",myName);
return str;
}
三、郵件發(fā)送
/// <summary>
/// 發(fā)送郵件
/// </summary>
public void SendEmail(string email_from,string email_to, string email_cc, string userName, string name, string myName)
{
try
{
// 建立一個(gè)郵件實(shí)體
MailAddress from = new MailAddress(email_from);
MailAddress to = new MailAddress(email_to);
MailMessage message = new MailMessage(from, to);
string strbody = ReplaceText(userName, name, myName);
if (email_cc.ToString() != string.Empty)
{
foreach (string ccs in email_cc.Split(';'))
{
MailAddress cc = new MailAddress(ccs);
message.CC.Add(cc);
}
}
message.IsBodyHtml = true;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Priority = MailPriority.High;
message.Body = strbody; //郵件BODY內(nèi)容
message.Subject = "Subject";
SmtpClient smtp = new SmtpClient();
smtp.Host = Configuration.MailHost;
smtp.Port = Configuration.MailHostPort;
smtp.Credentials = new System.Net.NetworkCredential(email_from, "emailpassword");
smtp.Send(message); //發(fā)送郵件
} catch (Exception ex)
{
throw ex;
}
}
其實(shí)無論采取什么方式或組件進(jìn)行郵件發(fā)送,要替換HTML模板中的內(nèi)容,只需一個(gè)Replace函數(shù)即可。
相信本文所述對(duì)大家C#.net程序設(shè)計(jì)的學(xué)習(xí)有一定的借鑒價(jià)值。
相關(guān)文章
用Linq從一個(gè)集合選取幾列得到一個(gè)新的集合(可改列名)
這篇文章主要介紹了用Linq從一個(gè)集合選取幾列得到一個(gè)新的集合(可改列名),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
C# 利用IRawPixels接口遍歷柵格數(shù)據(jù)
本文主要介紹了利用IRawPixels接口遍歷柵格數(shù)據(jù)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
C#如何遠(yuǎn)程讀取服務(wù)器上的文本內(nèi)容
這篇文章主要介紹了C#如何遠(yuǎn)程讀取服務(wù)器上的文本內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
C#編程中使用ref和out關(guān)鍵字來傳遞數(shù)組對(duì)象的用法
這篇文章主要介紹了C#編程中使用ref和out關(guān)鍵字來傳遞數(shù)組對(duì)象的用法,在C#中數(shù)組也是對(duì)象可以被傳遞,需要的朋友可以參考下2016-01-01
C#實(shí)現(xiàn)Winform中打開網(wǎng)頁頁面的方法
這篇文章主要介紹了C#實(shí)現(xiàn)Winform中打開網(wǎng)頁頁面的方法,涉及WinForm中WebBrowser的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
C#對(duì)DataTable里數(shù)據(jù)排序的方法
在日常開發(fā)過程中,有一個(gè)DataTable集合,里面有很多字段,現(xiàn)在要求針對(duì)某一列進(jìn)行排序,如果該列為數(shù)字的話,進(jìn)行ASC即可實(shí)現(xiàn),但是該字段類型為string,此時(shí)排序就有點(diǎn)不正確了2013-11-11

