当邮箱可用时,“SmtpFailedRecipientException:邮箱不可用”

时间:2011-10-26 19:34:51

标签: c# asp.net .net email smtp

当我尝试将电子邮件发送到我的代码中的特定地址时出现此错误:

  

System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。服务器响应为:未知用户

代码向两个电子邮件地址发送电子邮件,我和我的同事。电子邮件发送给我很好,但是当我试图向他发送电子邮件时我收到了错误。

我环顾四周,基本上这个错误的常见解释是电子邮件地址无效,或者邮箱已满,不允许接收邮件,或者服务器上有一些限制它的设置收到一封电子邮件。

但是电子邮件地址能够接收电子邮件,我现在通过电子邮件来回通信。

还有其他可能导致此错误的原因吗?

修改

这是代码,也许有人可以发现问题。我检查了传递的参数,所有数据都是正确的:

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);
    }
}

1 个答案:

答案 0 :(得分:8)

假设您的SMTP设置正确,这很可能是服务器端限制的情况......

例如,为了防止垃圾邮件,服务器只接受静态发件人IP的smtp和/或检查发件人IP与MX记录(DNS)等。