当我尝试将电子邮件发送到代码中的特定地址时,出现此错误:
该代码将电子邮件发送到两个电子邮件地址,即我和我的同事的电子邮件地址。电子邮件可以很好地发送给我,但是当它尝试向他发送电子邮件时出现了错误。
我环顾四周,基本上对于此错误的常见解释是电子邮件地址无效,或者其邮箱已满,并且不允许接收邮件,或者服务器上的某些设置限制了电子邮件的接收范围-邮件。
但是该电子邮件地址能够接收电子邮件,我现在正通过电子邮件与他来回通信。
还有其他原因导致此错误发生吗?
编辑:
这是代码,也许有人可以发现问题。我检查了正在传递的参数,所有数据都是正确的:
private static void SendEmail(IEnumerable<MailAddress> to, MailAddress from,
string subject, string body, string bodyHtml)
{
var mail = new MailMessage { From = from, Subject = subject };
foreach (var address in to)
{
mail.To.Add(address);
}
mail.AlternateViews.Add(
AlternateView.CreateAlternateViewFromString(bodyHtml, null, "text/html"));
mail.AlternateViews.Add(
AlternateView.CreateAlternateViewFromString(body, null, "text/plain"));
try
{
var smtp = new SmtpClient("localhost", 25)
{
Credentials = new NetworkCredential("xxx", "xxx")
};
smtp.Send(mail);
}
catch (Exception err)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(err);
}
}
最佳答案
假设您的SMTP设置正确,这很可能是服务器端限制的情况...
例如,为防止垃圾邮件,服务器仅接受来自静态发件人IP的smtp和/或正在根据MX记录(DNS)等检查发件人IP。
关于c# - 邮箱可用时的"SmtpFailedRecipientException: Mailbox unavailable",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7907866/