【发布时间】:2011-05-21 03:06:56
【问题描述】:
我有一个项目的一部分,我需要从一个网页发送 1 到 2000 封电子邮件。一个开源错误跟踪器使用线程发送电子邮件,但它充满了错误。
所以只是想知道是否有人对我如何创建一个每次发送多达 2000 封电子邮件的程序有任何想法?
我的一位同事告诉我,将其保留为一个过程(一次发送一封电子邮件的正常例行程序),因为无论如何处理所有电子邮件都不会花费很长时间。似乎不对,我想使用线程……也许我喜欢复杂的例程?
[额外] 我有类似的东西: foreach(电子邮件地址中的字符串电子邮件) { MailMessage mailMessage = new MailMessage(); mailMessage.To.Add(...) ... SmtpClient 客户端 = 新 SmtpClient(); client.Send(mailMessage); }
【问题讨论】:
-
也许见stackoverflow.com/questions/1607178/… 但是从我读过的其他线程 2000 一次很多,并且一些 SMTP 服务器可能会认为您正在发送垃圾邮件 - 您可能遇到的问题不仅仅是后台任务发送。
-
如果你使用线程,你会创建多少? Surly 不是 2000。您仍然需要一个线程来处理大量电子邮件。此外,您拥有的线程越多,每个线程可用于发送电子邮件的带宽就越少(操作的缓慢部分),从而导致性能与原始直接(单线程)解决方案相当。
-
你说得对。这个想法是一个线程只处理电子邮件,这样我就可以将用户从网页上移开......
-
但是我开始发现发送这么多电子邮件可能会出现问题...
-
嘿,一个充满错误的错误跟踪器的讽刺...... :)