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



该代码将电子邮件发送到两个电子邮件地址,即我和我的同事的电子邮件地址。电子邮件可以很好地发送给我,但是当它尝试向他发送电子邮件时出现了错误。

我环顾四周,基本上对于此错误的常见解释是电子邮件地址无效,或者其邮箱已满,并且不允许接收邮件,或者服务器上的某些设置限制了电子邮件的接收范围-邮件。

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

还有其他原因导致此错误发生吗?

编辑:

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

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/

10-12 03:46