2011-09-21 95 views
4

當將電子郵件發送到@ google.com或@ hotmail.com等普通域時,我的代碼正常工作。Sendmail返回錯誤代碼550 5.1.1,「用戶未知」

但是,當我嘗試發送電子郵件到我自己的域(比如說example.com)時,設置了哪臺服務器,我從郵件命令中收到錯誤代碼67。

我使用的是PHP的mail()函數,但我也試過"mail -stest [email protected]",它返回相同的錯誤,所以它不應該與代碼本身相關。

下面是我收到/var/mail/root

最終收件人郵件的部分內容:RFC822; [email protected]

動作:失敗

狀態:5.1.1遠程MTA:DNS; [127.0.0.1]

Diagnostic-Code:SMTP; 550 5.1.1 ...用戶未知

最後,嘗試-日期:星期三,2011年9月21日17時43分59秒GMT

我想我還要補充一點,我們域example.com正在使用Google Apps。

任何人都可以給我一個關於如何解決這個問題的想法嗎?


編輯:謝謝大家。我已經使用以下答案解決了問題:https://serverfault.com/questions/65365/disable-local-delivery-in-sendmail/128450#128450

+0

你有一個真正的'kubilayeksioglu'帳戶在你的服務器上?它可以是一個真實的物理賬戶,也可以是一個別名映射......但在某種程度上,它必須存在。 –

+0

是的,我喜歡。但問題是我在Gmail應用程序中擁有該帳戶,而不是在本地服務器中。爲什麼它不使用提供的MX記錄並嘗試將其發送到本地主機?有任何想法嗎? – kubilayeksioglu

+0

如果郵件服務器被告知它負責example.com的郵件,它將主動接收郵件並嘗試將郵件發送到指定的帳戶。您可能必須將其配置爲該域的中繼服務器,因此它會將用於@ example.com地址的任何電子郵件轉發給Google服務器。 –

回答

4

問題很可能是您的服務器的主機名設置爲您嘗試發送電子郵件的域名。

該行數:狀態:5.1.1遠程MTA:DNS; [127.0.0.1](更具體地說是127.0.0.1)表示郵件已發送到本地SMTP服務器。由於這不是Gmail服務器,因此會導致出現如您收到的錯誤等用戶未知錯誤。

要解決該問題,請查看服務器的主機名(/ etc/hostname)。同時檢查你的sendmail(或它的替換)配置。一些文件,你可以看一下包括(但不限於):

  • 的/ etc /郵件/本地主機名
  • 的/ etc /郵件名

此外,一些郵件如後綴在他們的配置文件中有一些設置。找到你要發送到的域名(例如example.com)在這些文件中,刪除引用,重新啓動郵件程序deamon(例如sendmail),你應該很好。

+0

嗨弗朗索瓦。 '/ etc/mailname'是空的,所以對這個文件沒有太多要做。 '/ etc/mail/local-host-names'有'localhost'和我的服務器的名字。在'/ etc/hostname'中有我的域名,但我認爲它可能會在其他地方使用。像這樣刪除它是否安全? – kubilayeksioglu

+0

@kubilayeksioglu - 你不想刪除主機名。你會想要選一個新的。參見[http://www.ducea.com/2006/08/07/how-to-change-the-hostname-of-a-linux-system/](http://www.ducea.com/2006/ 08/07/how-to-change-the-hostname-of-linux-system /)來獲得一些幫助。 –