为什么要批量发送电子邮件而不是单独发送?

时间:2011-08-09 20:48:21

标签: c# email batch-processing

我们有Windows服务来检查是否符合某些条件,我们会向客户发送电子邮件。我们每天会发送大约50封电子邮件。我的问题是,最好是单独发送电子邮件(即每次满足条件,触发sendmail功能)或排队所有电子邮件并批量发送?由于性能原因,批量发送会更好吗?但是我们每天只发送大约50封电子邮件,所以这并不重要吗?如果电子邮件应该批量发送,您会如何排队电子邮件?

非常感谢

3 个答案:

答案 0 :(得分:3)

通常,将多封电子邮件批量合并为一封电子邮件的原因是为了不刺激收件人,而不是出于性能原因。一整天都有50封电子邮件非常烦人,很快就会使收件人“退出”,而包含所有相关通知的单个电子邮件可能更容易消化。

关于如何重新排队电子邮件,最好是修改服务本身以将传出的电子邮件存储在文件或缓冲区中,并且只发送一次该文件或缓冲区的内容。已达到某个阈值 - 即时间阈值或大小阈值。

答案 1 :(得分:2)

如果您每天只发送50封电子邮件,那么这一点完全没有实际意义。

就实际服务器而言,SMTP并不关心您是批量发送还是单独发送,它只是通过电子邮件积压队列发送出去。

唯一真正需要关注的是,如果您需要不断查询数据库以查找要发送的电子邮件,或者您要查询数据库以查找要发送的批量电子邮件(以减少数据库查询)。

答案 2 :(得分:0)

忽略性能,还需要记住另一件事:用户是否在条件满足后立即需要该电子邮件?如果是这样,除非你几乎不断地清空队列,否则不要考虑对消息进行排队。

否则,这取决于你。每天50封电子邮件不会破坏您的服务器,所以我不担心性能。另一方面,如果您和您的用户分批发送电子邮件很方便,那就去吧。