C#.NET采用HTML模板发送电子邮件完整实例
程序员文章站
2023-12-19 19:15:58
本文实例讲述了c#.net采用html模板发送电子邮件的方法,是非常实用的技巧。分享给大家供大家参考。具体方法如下:
要使用html模板进行发送邮件,需要准备以下几项工作...
本文实例讲述了c#.net采用html模板发送电子邮件的方法,是非常实用的技巧。分享给大家供大家参考。具体方法如下:
要使用html模板进行发送邮件,需要准备以下几项工作:
1)html模板
2)替换函数(替换模板中绑定的变量)
3)邮件函数(发送邮件)
一、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这三个变量用$符号包裹进行标识,是需要被替换的字符串,它会在下面的替换函数中被动态替换。
二、替换函数
/// <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; }
三、邮件发送
/// <summary> /// 发送邮件 /// </summary> public void sendemail(string email_from,string email_to, string email_cc, string username, string name, string myname) { try { // 建立一个邮件实体 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内容 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); //发送邮件 } catch (exception ex) { throw ex; } }
其实无论采取什么方式或组件进行邮件发送,要替换html模板中的内容,只需一个replace函数即可。
相信本文所述对大家c#.net程序设计的学习有一定的借鉴价值。