2010-11-11 55 views
6

當試圖在.NET的網站發送了一封電子郵件,正在遇到以下錯誤:郵箱不可錯誤

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

這個錯誤出現,如果代碼試圖發送給其沒有按電子郵件地址不存在?

謝謝。

我現在有更多關於這個錯誤的信息。電子郵件是從'noreply @ [domain]'發送的。當電子郵件發送到同一個域的電子郵件地址時,電子郵件將毫無問題地發送。此錯誤僅在發送到的電子郵件地址不在同一個域中時纔會顯示。我不知道這是否有用?

回答

0

我不知道確切的問題,但我發現這個問題是事端:如何與後臺代碼訪問g與服務器遷移有關。問題現在已經解決了!

1

這聽起來像一個SMTP問題

嘗試設置您的SMTP服務器信息在web.config文件中是這樣的:

<system.net> 
     <mailSettings> 
      <smtp deliveryMethod="Network"> 
       <network defaultCredentials="false" host="mail.blah.com" password="xxxx" port="25" userName="[email protected]"/> 
      </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 2010-11-12 09:11:28

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

還是這個東西不起作用 – 2016-04-22 06:53:21

3

當您從2.0平臺切換到4.0時可能會發生這種情況。正如這裏所解釋的,您需要明確告訴IIS您沒有使用默認憑證和域。在web.config中使用以下語法:

<network host="mail.younameit.com" port="25" 
userName="[email protected]" password="youchoose" 
defaultCredentials="false" clientDomain=""/> 

最後兩個參數對於解決此問題最爲重要。

5

可能是因爲你的密碼不正確。我必須重置郵件服務器上的密碼,然後錯誤消失。

+0

對我來說就是這樣。爲什麼我們不會收到「無效憑證」或「授權失敗」之類的內容?看到「沒有這樣的用戶」和收件人的電子郵件地址真的令人困惑。 – 2016-02-14 08:30:43

+0

我有同樣的問題...並通過更改密碼解決 – Ratul 2018-02-05 12:54:03

1

在類似的情況下,這個Q/A對我很有用。對我們來說,關鍵的事實是錯誤只發生在不同域上的電子郵件地址。我瞭解到我們的新網站主機/郵件服務器設置是有意配置的。 (之前的一個託管公司沒有。)應用程序代碼或Web.config設置的某些組合可能已經解決了我們的問題,但最直接的方法是在我們的域中創建一個無回覆的帳戶,這樣現在[email protected]是有效的,並且允許發送到外部地址。

不需要修改代碼或Web.config。後者僅呼叫「from」和「host」,並且在我們的託管環境中不需要證書。 (當我們覆蓋「從」的名義,我們需要重寫它是一些其他的地址是有效的對我們的域名