c# - 间歇性 "The server response was: 5.7.1 Unable to relay"错误

标签 c# email exception smtp

我有一个在服务器上运行的小型 C# 电子邮件应用程序。启动后,它会发送一封电子邮件,然后消失。大多数时候它工作正常,但偶尔会出现以下错误:

System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.7.1 Unable to relay for joe123@msn.com
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at AppEmail.clsEmailMgr.SendEmail(MailMessage inMM, Int32 inTriesLimit, Int32 inSleepTime)
   at AppEmail.clsEmailMgr.MainProcess()

我看过一些关于此类错误的其他帖子,但它们倾向于关注服务器设置 - 我认为这是正确的 - 否则这个应用程序将永远无法运行......而且大部分时间都可以。

另一个注意事项:此应用程序可以相当快地被多次调用,因此可能会出现其自身的不同实例几乎同时尝试发送电子邮件的情况。垃圾邮件过滤器是否会阻止某些电子邮件发送尝试?任何其他想法将不胜感激。

最佳答案

此错误的发生取决于服务器设置...它不会阻止您的代码一直工作...但它禁止向发件人发送电子邮件/来自不允许的域和/或将电子邮件发送到域不允许...因此在错误中提到“中继”...

通常,如果您要求服务器从 a@b.com 发送电子邮件,并且服务器仅针对域 c.com 设置,则会出现此错误...否则它很容易被垃圾邮件发送者滥用(谷歌对于:垃圾邮件开放中继)...如果您的应用出于合法原因需要进行此类“中继”,请要求邮件服务器管理员配置允许为托管您的应用的机器中继的邮件服务器...

快速发送应该不是问题,除非它可能被视为试图发送大量垃圾邮件的受感染机器...因为您没有说明每时间单位的数量,这纯粹是猜测...

关于c# - 间歇性 "The server response was: 5.7.1 Unable to relay"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323085/

相关文章:

c# - 预加载 WPF 窗口(可能在其他线程中)以提高性能

PHP 邮件无法使用 Ras Pi LAMP 服务器在网站上发送

JavaMail Yandex 发件人

c# - Nuget 项目依赖 hell

C#:字节到 UTF-8 字符串的转换。为什么它不起作用?

c# - 显示日期范围内的数据

python - Django 发送邮件

python - kwargs 的自定义异常 (Python)

c++ - Windows 中 boost::serialization 的未知异常

c# - 访问异常类数据属性中的字典项