我讨厌在这里发布一个堆栈跟踪,但我没有想法......我的应用程序在网站上发送各种任务的电子邮件,90%的时间都没有问题.但是,ASP.NET经常会抛出一个奇怪的异常,这似乎与邮件服务器连接有关(我使用谷歌业务服务器来处理电子邮件).这个错误对我来说太通用了,所以下面的堆栈跟踪.我的应用程序捕获异常并回写一个通用的"在5分钟响应中再试一次".
我被这个错误困扰了,因为:
有任何想法吗?我能想到的唯一突出问题是:
代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
例外:
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)
Run Code Online (Sandbox Code Playgroud)
我过去曾在批量电子邮件系统上工作过.您获得的异常消息完全是描述性的:SMTP服务器暂时不接受邮件.这可能是由于许多条件:
以后重试电子邮件始终有效的事实表明这是正常的预期行为.没有什么可以做的不同以避免这种情况,它是ISP用于在需要时限制流量的常用方法.