【发布时间】:2015-06-10 20:26:11
【问题描述】:
MSDN docs for SmptClient 表示不能保证实例成员是线程安全的(通过使用实例属性来存储诸如 reference source 中的 MailWriter 之类的东西而产生)。
另一方面,this post(和我的经验)表明,简单地为每封发送的电子邮件创建和处理一个 SmtpClient 可能会导致您很容易达到连接限制。
管理这些对象的最佳方法是什么?我是否必须手动创建池或使用信号量限制使用?或者,是否有一些更容易遵循的模式。我总是使用同一个邮件服务器。
【问题讨论】:
-
您是一次发送几封电子邮件还是数百封(或更多)?我使用队列来存储消息,并有一个单独的服务接收消息并通过邮件服务发送出去
-
不要从多个线程访问它们。多田。如果需要,缓存您的电子邮件并让工作人员每 X 分钟刷新一次缓存。双塔达。最后一件事,加强缓存以防止应用程序重新启动。贵族。
标签: c# email smtpclient