邮箱不可用错误

6
在尝试发送 .NET 网站的电子邮件时,遇到以下错误:
Mailbox unavailable. The server response was: No such user here

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

谢谢。

我现在对这个错误有更多的信息。电子邮件是从'noreply@[domain]'发送的。当电子邮件发送到相同域的电子邮件地址时,电子邮件可以正常发送。只有当要发送的电子邮件地址不来自同一域时才会出现此错误。我不知道这有没有用?

5个回答

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

6

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


这对我来说也是一样的。为什么我们不会收到类似于“凭证无效”或“授权失败”的信息呢?看到“没有此用户”加上收件人的电子邮件地址真的很令人困惑。 - Delphi.Boy
我有同样的问题...通过更改密码解决了。 - Ratul

3

当您从2.0平台切换到4.0时,可能会出现此问题。如在此处所述,您需要明确告知IIS您不使用默认凭据和域。在web.config中使用以下语法:

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

最后两个参数是解决此问题最重要的部分。

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


1
谢谢您的回复 - 我不确定这是否是问题所在,因为出现错误的网站已经上线至少2年了,并且以前发送电子邮件时从未收到过此错误消息。是否还有其他原因导致此错误消息? - Leah

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

没有需要修改代码或Web.config。后者只调用“from”和“host”,在我们的托管环境中不需要凭据。(当我们覆盖名义上的“from”时,我们需要将其覆盖为一些其他的地址,这些地址在我们的域上是有效的


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接