【发布时间】:2012-02-23 10:26:02
【问题描述】:
我正在开发一个 ASP.NET (C#) 产品,该产品必须向订阅者列表发送独特的电子邮件。我的代码如下所示:
// Grab subscribers from db, about 10-20.
var malingList = Bll.GetAllSubscribers();
var client = new SmtpClient();
// Set up settings on the SmtpClient with cridentails and so on
foreach(var subscriber in mailingList)
{
var message = new MailMessage();
// Set up message, set reciver, yada yada
client.Send(message);
}
client.Dispose();
我在使用“假 smtp”剪纸进行测试时收到此错误:发送邮件失败。无法将数据写入传输连接:
我想要做的是保持 SMTP 连接也打开。不必在每封电子邮件中重复“握手”。
我不确定 100 但是。这应该工作吗?我想我还有另一个项目是这样实现的。
【问题讨论】:
-
Client.Send(message);应该是client.Send(message); -
您不使用
Using (var client = new SmtpClient())的任何原因? -
@James Hill - 是的,这只是为了展示这个概念。 @ Erik Philips - 你读过这篇文章吗?在 using 语句中包装这些行将在每次发送时调用 Dispose。我不想在每次查看时都发送 QUIT 命令。如果可能的话,我想保持连接并在 10-20 次发送中重复使用它。另一方面,我可以将 foreach 包装在 using 语句中。无论如何,这不是问题。
标签: c# asp.net email smtpclient