【发布时间】:2011-04-09 06:45:50
【问题描述】:
我不想在这里发布堆栈跟踪,但我没有想法......我的应用程序为网站上的各种任务发送电子邮件,并且 90% 的时间没有问题。然而,ASP.NET 每隔一段时间就会抛出一个奇怪的异常,这似乎与邮件服务器连接有关(我使用 google 业务服务器来处理电子邮件)。这个错误对我来说太笼统了,无法调试,因此下面是堆栈跟踪。我的应用程序捕获了异常并写回了一个通用的“在 5 分钟内重试响应”。
我被这个错误难住了,因为:
- Google 电子邮件通常非常可靠(它是从我的域发送的,而不是 gmail.com)。
- 音量非常低,因此这不应该是加载/垃圾邮件类型的问题。
- 错误非常普遍。
- 在 5 分钟内再次尝试几乎总是可以毫无问题地发送电子邮件,并且没有任何参数(收件人、主题、正文)发生变化。
有什么想法吗?我能想到的唯一悬而未决的问题是:
- 电子邮件发送是同步的。这是我真正想要发生的事情,因为我想用成功/失败状态消息来响应用户。
- 我使用 Amazon EC2 作为服务器,如果这对此事有任何影响的话。
代码:
public static void SendMail(String from, String to, String subject, String body, bool IsHtml)
{
MailMessage m = new MailMessage(from, to, subject, body);
m.IsBodyHtml = IsHtml;
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Send(m);
}
例外:
System.Net.Mail.SmtpException: Error in processing. The server response was: 4.3.0 Mail server temporarily rejected message. m6sm2190005vcx.24
at System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse)
at System.Net.Mail.DataStopCommand.Send(SmtpConnection conn)
at System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args)
at System.Net.ClosableStream.Close()
at System.Net.Mail.MailWriter.Close()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
【问题讨论】:
-
对这个特定错误执行谷歌搜索表明这可能是他们知道的谷歌服务器的问题。待解决。