C#.NET采用HTML模板发送电子邮件完整实例
本文实例讲述了C#.NET采用HTML模板发送电子邮件的方法,是非常实用的技巧。分享给大家供大家参考。具体方法如下:
要使用html模板进行发送邮件,需要准备以下几项工作:
1)HTML模板
2)替换函数(替换模板中绑定的变量)
3)邮件函数(发送邮件)
一、HTML模板
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <title>HTMLReport</title> </head> <body> <p>$USER_NAME$:</p> <p>Mynameis$NAME$</p> <p>ThisisaTestEmail,<br/> $MY_NAME$</p> </body> </html>
其中USER_NAME、NAME、MY_NAME这三个变量用$符号包裹进行标识,是需要被替换的字符串,它会在下面的替换函数中被动态替换。
二、替换函数
///<summary>
///替换模板中的字段值
///</summary>
publicstringReplaceText(StringuserName,stringname,stringmyName)
{
stringpath=string.Empty;
path=HttpContext.Current.Server.MapPath("EmailTemplate\\emailTemplate.html");
if(path==string.Empty)
{
returnstring.Empty;
}
System.IO.StreamReadersr=newSystem.IO.StreamReader(path);
stringstr=string.Empty;
str=sr.ReadToEnd();
str=str.Replace("$USER_NAME$",userName);
str=str.Replace("$NAME$",name);
str=str.Replace("$MY_NAME$",myName);
returnstr;
}
三、邮件发送
///<summary>
///发送邮件
///</summary>
publicvoidSendEmail(stringemail_from,stringemail_to,stringemail_cc,stringuserName,stringname,stringmyName)
{
try
{
//建立一个邮件实体
MailAddressfrom=newMailAddress(email_from);
MailAddressto=newMailAddress(email_to);
MailMessagemessage=newMailMessage(from,to);
stringstrbody=ReplaceText(userName,name,myName);
if(email_cc.ToString()!=string.Empty)
{
foreach(stringccsinemail_cc.Split(';'))
{
MailAddresscc=newMailAddress(ccs);
message.CC.Add(cc);
}
}
message.IsBodyHtml=true;
message.BodyEncoding=System.Text.Encoding.UTF8;
message.Priority=MailPriority.High;
message.Body=strbody;//邮件BODY内容
message.Subject="Subject";
SmtpClientsmtp=newSmtpClient();
smtp.Host=Configuration.MailHost;
smtp.Port=Configuration.MailHostPort;
smtp.Credentials=newSystem.Net.NetworkCredential(email_from,"emailpassword");
smtp.Send(message);//发送邮件
}catch(Exceptionex)
{
throwex;
}
}
其实无论采取什么方式或组件进行邮件发送,要替换HTML模板中的内容,只需一个Replace函数即可。
相信本文所述对大家C#.net程序设计的学习有一定的借鉴价值。