我讨厌在这里发布堆栈跟踪,但我没有想法......我的应用程序在网站上发送各种任务的电子邮件,90%的时间没有问题。但是,每当ASP.NET经常发出一个奇怪的异常,这似乎与邮件服务器连接有关(我使用谷歌业务服务器进行电子邮件)。这个错误对于我来说是太普通的调试,因此下面的堆栈跟踪。我的应用程序捕获异常并写回通用的'5分钟响应再试一次'。使用ASP.NET发送电子邮件的临时问题
我被这个错误难倒,因为:
- 谷歌电子邮件通常是非常可靠的(它从我的域发送的,而不是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)
对此特定错误执行谷歌搜索表明,这可能是他们知道的Google服务器的问题。分辨率未决。 – 2010-09-07 15:49:39