尝试在.NET站点中发送电子邮件时,遇到以下错误:
Mailbox unavailable. The server response was: No such user here
如果代码尝试发送到不存在的电子邮件地址,是否会出现此错误?
感谢。
我现在有关于此错误的更多信息。电子邮件来自'noreply @ [domain]'。当电子邮件发送到同一域的电子邮件地址时,电子邮件将毫无问题地发送。仅当发送到的电子邮件地址不是来自同一域时,才会显示此错误。我不知道这有用吗?
答案 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的这一部分,以及如何使用代码来访问它:
答案 4 :(得分:1)
在类似情况下,此Q / A对我有用。对我们来说,关键的事实是错误仅发生在不同域的电子邮件地址上。我了解到我们的新webhost /邮件服务器设置是有意配置的。 (前一个与托管公司相同的公司没有。)应用程序代码或Web.config设置的某些组合可能已经解决了我们的问题,但最直接的方法是在我们的域上创建一个无回复帐户,以便现在no-reply@ourdomain.com有效,并允许IS发送到外部地址。
不需要修改代码或Web.config。后者仅调出“来自”和“主机”,并且在我们的托管环境中不需要凭据。 (当我们覆盖名义上的“from”时,我们需要将其覆盖为在我们的域上有效的其他地址。
答案 5 :(得分:-1)
我不确定确切的问题,但我发现问题与服务器迁移有关。问题现在已经解决了!