关于邮件群发
最近在做一个项目,要求按照客户事先设定好的条件以一定的时间间隔给客户发送邮件。
其实之前公司有人做过这个,但速度太慢,总是不能在一天之内发完邮件。因为每天要处理的记录总数有150万左右,而对于每一条记录,又不单单只是发送邮件,而是需要根据设定的条件先从数据库中查询出结果后,再将结果组合成邮件正文,然后发送出去。
我分析了一下以前的程序,主要做了两方面的改进:
一、因为需要并发处理数据,所以肯定要用到多线程。但以前的程序用到了线程池,我改为了自己控制线程,请参考这两者的比较。
二、在邮件的发送上,以前的程序用的是.Net提供的SmtpClient对象,我改为了根据SMTP协议直接与邮件服务器建立TCP连接,这样改了后,发邮件的速度比以前快了,而且,可以更好的在发邮件的同时监控邮件服务器的状态。
对程序做了以上的升级后,现在程序的发送速度已经能够满足要求了,如果以后还要升级的话,我想就要从升级和优化数据库、升级邮件服务器等方面入手了。
posted on 2006-10-28 11:02 bartholomew 阅读(472) 评论(0) 编辑 收藏 举报