邮箱不可用错误

时间:2010-11-11 17:39:53

标签: asp.net sendmail

尝试在.NET站点中发送电子邮件时,遇到以下错误:

Mailbox unavailable. The server response was: No such user here

如果代码尝试发送到不存在的电子邮件地址,是否会出现此错误?

感谢。

我现在有关于此错误的更多信息。电子邮件来自'noreply @ [domain]'。当电子邮件发送到同一域的电子邮件地址时,电子邮件将毫无问题地发送。仅当发送到的电子邮件地址不是来自同一域时,才会显示此错误。我不知道这有用吗?

6 个答案:

答案 0 :(得分:9)

当您使用NetworkCredentials指定域时会发生这种情况。如果指定域(第三个参数),则只能发送到该域中的有效邮箱。保留它以便能够发送到域外的任何地址。

var client = new SmtpClient("smtp.server.com");
client.UseDefaultCredentials = false;

// The following will be able to send to anyone outside the domain.
client.Credentials = new NetworkCredential("user", "password");

// The following will only work when sending to users on server.com
client.Credentials = new NetworkCredential("user", "password", "server.com");

答案 1 :(得分:6)

可能是您的密码不正确。我不得不重置邮件服务器上的密码,然后错误就消失了。

答案 2 :(得分:3)

从2.0平台切换到4.0时可能会发生这种情况。正如在此解释的那样,您需要明确告诉IIS您没有使用默认凭据和域。在web.config中使用以下语法:

<network host="mail.younameit.com" port="25"
userName="account@younameit.com" password="youchoose"
defaultCredentials="false" clientDomain=""/>

最后两个参数对于解决此问题非常重要。

答案 3 :(得分:1)

这听起来像是一个smtp问题

尝试在web.config文件中设置smtp服务器信息,如下所示:

<system.net>
        <mailSettings>
            <smtp deliveryMethod="Network">
                <network defaultCredentials="false" host="mail.blah.com" password="xxxx" port="25" userName="ex@blah.com"/>
            </smtp>
        </mailSettings>
</system.net> 

这篇文章详细介绍了web.config的这一部分,以及如何使用代码来访问它:

http://dotnetslackers.com/Community/blogs/kaushalparik/archive/2008/09/06/accessing-web-config-file-smtp-mail-settings-programmatically.aspx

答案 4 :(得分:1)

在类似情况下,此Q / A对我有用。对我们来说,关键的事实是错误仅发生在不同域的电子邮件地址上。我了解到我们的新webhost /邮件服务器设置是有意配置的。 (前一个与托管公司相同的公司没有。)应用程序代码或Web.config设置的某些组合可能已经解决了我们的问题,但最直接的方法是在我们的域上创建一个无回复帐户,以便现在no-reply@ourdomain.com有效,并允许IS发送到外部地址。

不需要修改代码或Web.config。后者仅调出“来自”和“主机”,并且在我们的托管环境中不需要凭据。 (当我们覆盖名义上的“from”时,我们需要将其覆盖为在我们的域有效的其他地址。

答案 5 :(得分:-1)

我不确定确切的问题,但我发现问题与服务器迁移有关。问题现在已经解决了!