【发布时间】:2015-02-17 10:03:18
【问题描述】:
我正在尝试从 ASP.NET MVC 4 Web 应用程序向我们的客户发送 500 封电子邮件。我只是使用如下所示的 foreach 循环。大约 50 个周期后,我得到一个通用异常,说无法发送邮件消息。我相信我正在处理限制我的 Web 应用程序的 节流 和 MS Exchange 设置。如何简单地实施限制以绕过这些限制?
谢谢。
foreach (var toAddress in addresses)
{
var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
};
message.IsBodyHtml = isHtml;
try
{
using (var client = new SmtpClient())
{
client.Send(message);
}
}
catch (Exception ex)
{
Debug.WriteLine("Cannot send e-mail to " + message.To + Environment.NewLine +
"Subject: " + subject + Environment.NewLine +
"Body: " + body + Environment.NewLine +
"Exception: " + ex.Message);
}
}
【问题讨论】:
-
一个问题可能是为每封电子邮件打开/关闭 SmtpClient。您是否尝试过只打开一次连接并在 foreach 循环后关闭?
-
恕我直言,认真思考,并注意下面 Brad 的 cmets。这在某些方面超出了技术问题,这就是为什么在现实世界的业务中,此类任务通常由适当的服务/提供商(例如营销/群发电子邮件提供商)完成,而不是在内部完成。嗯……
-
由于所有邮件都具有相同的正文和主题,您可以使用密件抄送将每封电子邮件发送给多个客户,而不是向每个客户发送单独的邮件。生成的电子邮件不会显示收件人地址,但您可以有效地将其快速发送到您的电子邮件服务器。
-
@Grax:这不是我的情况,抱歉。每条消息都有不同的正文。
标签: c# asp.net asp.net-mvc email exchange-server