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程序设计的学习有一定的借鉴价值。