当我尝试将电子邮件发送到我的代码中的特定地址时出现此错误:
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);
}
}
答案 0 :(得分:8)
假设您的SMTP设置正确,这很可能是服务器端限制的情况......
例如,为了防止垃圾邮件,服务器只接受静态发件人IP的smtp和/或检查发件人IP与MX记录(DNS)等。