惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Stack Overflow Blog
Stack Overflow Blog
S
SegmentFault 最新的问题
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
U
Unit 42
GbyAI
GbyAI
B
Blog RSS Feed
博客园 - Franky
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - bartholomew

new作为修饰符时的使用,以及接口的显式实现 关键词:应用程序扩展,通配符应用程序映射 Silverlight 2 Beta 1在Firefox下显示时的一点小问题~ Visual Studio也有调试禁区?! 关于SQL Server 2005的版本号 使用动态SQL的一点小技巧 通过本地IIS SMTP服务器发送邮件时提示“邮箱不可用”的解决办法 使用System.Net.Mail.SmtpClient发送邮件时出现的乱码问题 写代码的心情 在XP上安装SQL Server 2000、Visual studio .net 2003、Visual studio 2005、SQL Server 2005…… XPS M1210到了~~~~ 在dell的网上订购了XPS M1210,耐心等待中…… 对PropertyGrid控件中PropertyValueChanged事件的探讨 关于Dotnet中的线程池 Dotnet中强行关闭多线程应用程序的所有线程 工作之余,自省~ 创建某控件的线程之外的其他线程试图调用该控件引发的问题 古怪的ConfigurationManager类 多线程编程中Join与WaitOne的区别
关于邮件群发
bartholomew · 2006-10-28 · via 博客园 - bartholomew

最近在做一个项目,要求按照客户事先设定好的条件以一定的时间间隔给客户发送邮件。

其实之前公司有人做过这个,但速度太慢,总是不能在一天之内发完邮件。因为每天要处理的记录总数有150万左右,而对于每一条记录,又不单单只是发送邮件,而是需要根据设定的条件先从数据库中查询出结果后,再将结果组合成邮件正文,然后发送出去。

我分析了一下以前的程序,主要做了两方面的改进:
一、因为需要并发处理数据,所以肯定要用到多线程。但以前的程序用到了线程池,我改为了自己控制线程,请参考这两者的比较
二、在邮件的发送上,以前的程序用的是.Net提供的SmtpClient对象,我改为了根据SMTP协议直接与邮件服务器建立TCP连接,这样改了后,发邮件的速度比以前快了,而且,可以更好的在发邮件的同时监控邮件服务器的状态。

对程序做了以上的升级后,现在程序的发送速度已经能够满足要求了,如果以后还要升级的话,我想就要从升级和优化数据库、升级邮件服务器等方面入手了。