C#.NET采用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程序设计的学习有一定的借鉴价值。

(0)

相关推荐

  • C#实现发送邮件的三种方法

    本文实例讲述了C#实现发送邮件的三种方法.分享给大家供大家参考.具体方法分析如下: 一.问题: 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大家共同学习学习. 二.实现代码: 通过.Net FrameWork 2.0下提供的"System.Net.Mail"可以轻松的实现,本文列举了3种途径来发送: 1.通过Localhost: 2.

  • c#调用qq邮箱smtp发送邮件修改版代码分享

    复制代码 代码如下: try            {                MailMessage mm = new MailMessage();                MailAddress Fromma = new MailAddress("xxxx@qq.com");                MailAddress Toma = new MailAddress("MMMMMMM@qq.com", null);              

  • C#实现SMTP邮件发送程序实例

    通常来说邮件发送功能在网站应用程序中经常会用到,包括大家经常看到的博客,在添加评论后,系统会自动发送邮件通知到我邮箱的,把系统发送邮件的功能整理了下,本文展示了一个客户端Demo,希望对有需要的朋友有所帮助.运行效果如下图所示: 核心代码如下: 复制代码 代码如下: using System; using System.Net; using System.Net.Mail; using System.Text; namespace HC.Email {     /// <summary>   

  • C#中发送邮件代码

    始找的代码只能发送无SMTP验证的邮件,但现在很多EMAIL发送时都需要验证,后来查找了下MSDN的帮助,找到了发送验证的代码,贴出来希望对大家有所帮助! 复制代码 代码如下: public static int sendmail(string to, string body,string subject) { try { int nContain = 0; ///添加发件人地址 string from = "你的发送EMAIL"; MailMessage mailMsg = new

  • C# 邮件地址是否合法的验证

    复制代码 代码如下: /// <summary> /// 检测输入的邮件地址strEmail是否合法,非法则返回true. /// </summary> public bool CheckEmail(string strEmail) { int i, j; string strTmp, strResult; string strWords = "abcdefghijklmnopqrstuvwxyz_-.0123456789"; //定义合法字符范围 bool b

  • C# 邮件发送和接收实现代码

    邮件发送 方法一:使用System.Web.Mail命名空间(此方法我测试没有成功过)  复制代码 代码如下: #region 发送邮件:此方法失败 protected void SendFailed() { System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage(); mail.From = "test@ gmail.com"; mail.To = " test@ gmail.com "

  • C#使用windows服务发送邮件

    最近做了一个使用 C# 写了一个发送邮件的windows 服务,在这里记录一下. 首先使用 Visual Studio 2015 创建一个 windows 服务项目. 然后在设计器上面右击添加安装程序.如下图. 安装好后,选择安装程序设计界面,选择服务和安装程序右击选择属性修改一些属性值. PS:如果不给服务添加安装程序,后面是没法把服务安装至 windows 系统里的. 在数据库创建一个表,用于存储需要发送的邮件信息. create table MainInfo ( MainInfoID in

  • C#通过POP3获取邮件的代码(正文和附件)

    使用方法: 获取第1封邮件 复制代码 代码如下: Zgke.Net.POP3 _Popt = new Zgke.Net.POP3("192.168.0.1", 110); DataTable _Mail = _Popt.GetMail("zk", "zk", 1); 返回DataTable 数据内容为 Type为类型 Text为文字 如果是附件 为byte[] Name 如果是附件里存放的为文件名  下面是全部的类 复制代码 代码如下: usin

  • C#使用MailAddress类发送html格式邮件的实例代码

    1.首先引入命名空间using System.Net.Mail;2.将发送的邮件的功能封装成一个类,该类中包含了发送邮件的基本功能:收件人(多人),抄送(多人),发送人,主题,邮件正文,附件等,封装的Email类如下: 复制代码 代码如下: public class Email    {        /// <summary>        /// 发送者        /// </summary>        public string mailFrom { get; set

  • c#实现服务器性能监控并发送邮件保存日志

    客户端代码 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;using System.Text;using System.Threading;using System.Management;using System.Configurat

随机推荐