对于邮件发送,一般来说,程序会响应超过1秒,这样对于用户体验来说,让用户等待的时间过长,而且发送的邮件越多时间就越长,所以这里我利用了线程的来处理邮件发送这种耗时的工作,废话不多说,直接上代码

 private string title;
/// <summary>
/// 发送标题
/// </summary>
public string Title
{
get { return title; }
set { title = value; }
}
private string body;
/// <summary>
/// 发送内容,可以包含html
/// </summary>
public string Body
{
get { return body; }
set { body = value; }
}
private List<string> toEmail = new List<string>();
/// <summary>
/// 发送给谁,可以多用户
/// </summary>
public List<string> ToEmail
{
get { return toEmail; }
set { toEmail = value; }
}
private string toDis;
/// <summary>
/// 发送给谁的描述
/// </summary>
public string ToDis
{
get { return toDis; }
set { toDis = value; }
}
private string fromDis;
/// <summary>
/// 发送人描述
/// </summary>
public string FromDis
{
get { return fromDis; }
set { fromDis = value; }
} public SendEmail(string title, string body, List<string> toEmail, string toDis, string fromDis)
{
this.title = title;
this.body = body;
this.toEmail = toEmail;
this.toDis = toDis;
this.fromDis = fromDis;
} #region 邮件发送方法
/// <summary>
/// 利用线程来发送邮件,减少系统响应时间
/// </summary>
public void WebEmail()
{
try
{
Thread thread = new Thread(new ThreadStart(SendWebEmail));
thread.Start();
}
catch
{
throw;
}
} public void SendWebEmail()
{
try
{
foreach (string toEmailName in this.ToEmail)
{
MailAddress from = new MailAddress(SendConfig.EmailName, this.FromDis); //SendConfig.EmailName是发送邮件的邮箱名称
MailAddress to = new MailAddress(toEmailName, this.ToDis);
MailMessage msg = new MailMessage(from, to);
msg.Priority = MailPriority.High; msg.Subject = this.Title;
msg.Body = this.Body;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true; SmtpClient smtp = new SmtpClient();
smtp.Host = SendConfig.SMTP; //SendConfig.SMTP是发送邮件的邮箱的SMTP
smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential(SendConfig.EmailName, SendConfig.EmailPwd); //SendConfig.EmailPwd是发送邮件的邮箱的密码
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Send(msg);
}
}
catch (Exception e)
{
throw;
}
}
#endregion

程序需要引用:

using System.Net.Mail;
using System.Threading;

这两个命名空间

利用System.Net.Mail和多线程实现邮件发送的更多相关文章

  1. 利用System.Net.Mail 的SmtpClient发送邮件

    原文:利用System.Net.Mail 的SmtpClient发送邮件 几个月前总结过关于Jmail发送邮件,当时用Jmail发送邮件发送速度有点慢(可能对Jmail了解不是很多).现在改为用微软提 ...

  2. 利用System.Net.Mail 发送邮件

    我这里只是试了一下发mail的功能,感觉.net自带的发mail是比较全的,还是直接上我的code 参数文章:System.Net.Mail 发送邮件 SMTP协议 using System; usi ...

  3. java使用javax.mail进行免费的邮件发送

    1. 建议发送方使用阿里云邮箱https://mail.aliyun.com/,阿里云默认是开启个人邮箱pop3.smtp协议的,所以无需在阿里云邮箱里设置,pop3.smtp的密码默认邮箱登录密码, ...

  4. 利用EasySQLMAIL实现自动数据提取和邮件发送功能 (1)

    转自:http://blog.sina.com.cn/s/blog_1549483b70102wioy.html 最近几个月每天都在发通报.过程很繁琐,动作很机械,整个人就是一部机器,执行SQL,填E ...

  5. System.net.mail 使用ssl发送邮件失败

    我采用了.net 的自带组件System.Net.Mail发送邮件,主要是在客户注册网站成功的时候发条欢迎邮件,最近邮件无法发送了,看了下腾讯smtp邮件配置,所有的邮件发送都换成ssl了,之前用的是 ...

  6. System.net.mail 腾讯ssl发送邮件超时

    我采用了.net 的自带组件 System.Web.Mail.MailMessage发送邮件,主要是在客户注册网站成功的时候发条欢迎邮件,最近邮件无法发送了,看了下腾讯smtp邮件配置,所有的邮件发送 ...

  7. Java 基于mail.jar 和 activation.jar 封装的邮件发送工具类

    准备工作 发送邮件需要获得协议和支持! 开启服务 POP3/SMTP 服务 如何开启 POP3/SMTP 服务:https://www.cnblogs.com/pojo/p/14276637.html ...

  8. Java 使用 mail.jar 实现邮件发送

    目录 准备工作 使用到的 jar 包 实现代码 准备工作 要想实现邮件发送, 需要先打开发送邮箱的 POP3/SMTP 服务,打开方式在 设置>帐户 中去打开,打开之后如果是qq邮箱会获得一个授 ...

  9. Spring Boot实战系列-----------邮件发送

    快速导航 添加Maven依赖 配置文件增加邮箱相关配置 Service.Test项目代码构建 五种邮件发送类型讲解 文本邮件 html邮件 附件邮件 html内嵌图片邮件 模板邮件 问题汇总 添加ma ...

随机推荐

  1. 利用google浏览器开发者工具调试网页(详)

    前端程序员或者在校大学生正在开发网页,如果想要测试或者通过测试优化网页结构,该怎么办呢?这就需要用到一款工具,chrome浏览器的开发者工具?本文写给尚不熟悉这个开发者工具的同学们或者同行们,话不多说 ...

  2. javaWeb实现使用邮箱邮件找回密码功能

    JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...

  3. Spark 启动过程(standalone)

    Spark启动过程 正常启动Spark集群时往往使用start-all.sh ,此脚本中通过调用start-master.sh和start-slaves.sh启动mater及workers节点. 1. ...

  4. jQueryMobile之弹出对话框

    1:dialog-test.html <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  5. Android 之Service

    service是运行在后台的服务,你可以启动一个服务Service来播放音乐,或者记录你地理信息位置的改变,或者启动一个服务来运行并一直监听某种动作. 接下来分析一下service 的生命周期: 1: ...

  6. 8.2.1.10 Nested-Loop Join Algorithms 嵌套循环 关联算法:

    8.2.1.10 Nested-Loop Join Algorithms 嵌套循环 关联算法: MySQL 执行关联在表之间使用一个嵌套循环算法或者变种 Nested-Loop Join Algori ...

  7. HDU - 5156 Harry and Christmas tree

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=5156 题意 : 给一颗编号为1-n的以1为根的树, 已知有m个颜色的礼物分布在某些节点上(同一节点 ...

  8. 爬虫学习-使用CrawlSpider

    使用scrapy中的CrawlSpider类来进行爬行 一直用的是BaseSpider,回调函数的方式,有一个问题是title,date在一个页面,author,detail在另一个页面时,怎么把这些 ...

  9. github atom创建自己的语法高亮

    使用atom一段时间了,有些插件还不是很成熟.比如项目中使用protobuf,早就有人写了语法高亮(https://github.com/podgib/atom-protobuf),但是效果不是很好. ...

  10. Could not Build module ImageIO

    错误提示:Could not Build module ImageIO: 原因:修改了XCode API 源文件 措施:从一个干净的未曾修改过的XCode中拷贝一份相应的文件添加到发生错误的XCode ...