未收到電子郵件:Postfix (CentOS 7) 中的中繼訪問被拒絕
由於某種原因,我在 CentOS 7 上執行的 Postfix 郵件伺服器最近停止工作,可能是因為我通過 Webmin 更新了模組,我不知道。我可以發送電子郵件,但我沒有收到電子郵件。此外,POP3 和 IMAP 無法正常工作。我已經嘗試了很多東西,但我自己無法弄清楚,所以我正在尋找一些幫助。
我閱讀了一些關於這些主題的主題:
我最初
Relay access denied
的錯誤:來自文件/var/log/maillog
:Jul 31 11:18:40 myhostname postfix/smtpd[6787]: connect from mail-wm0-f51.google.com[74.125.82.51] Jul 31 11:18:40 myhostname postfix/smtpd[6787]: NOQUEUE: reject: RCPT from mail-wm0-f51.google.com[74.125.82.51]: 454 4.7.1 <contact@mydomain.com>: Relay access denied; from=<myemail@gmail.com> to=<contact@mydomain.com> proto=ESMTP helo=<mail-wm0-f51.google.com> Jul 31 11:18:41 myhostname postfix/smtpd[6787]: disconnect from mail-wm0-f51.google.com[74.125.82.51]
我的初始設置(
/etc/postfix/main.cf
)執行命令postconf -n
:alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 html_directory = no mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain newaliases_path = /usr/bin/newaliases.postfix readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES sample_directory = /usr/share/doc/postfix-2.10.1/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination unknown_local_recipient_reject_code = 550
在閱讀了我上面提到的文章之後,我定義了
mydomain
,myhostname
和mynetworks
; 現在我得到一個不同的錯誤(見下文。)這是main.cf
更改的設置:alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 html_directory = no mailq_path = /usr/bin/mailq.postfix manpage_directory = /usr/share/man mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydomain = mydomain.com myhostname = 9dok43ksalv.hostname.com mynetworks = 11.22.33.44/28, 127.0.0.0/8 myorigin = $mydomain newaliases_path = /usr/bin/newaliases.postfix readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES relay_domains = $mydestination sample_directory = /usr/share/doc/postfix-2.10.1/samples sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination unknown_local_recipient_reject_code = 550
現在我得到的錯誤
Recipient address rejected: User unknown in local recipient table;
如下所示:connect from mail-wm0-f49.google.com[74.125.82.49] Aug 1 16:22:27 9dok43ksalv postfix/smtpd[2583]: NOQUEUE: reject: RCPT from mail-wm0-f49.google.com[74.125.82.49]: 550 5.1.1 <contact@mydomain.com>: Recipient address rejected: User unknown in local recipient table; from=<myemail@gmail.com> to=<contact@mydomain.com> proto=ESMTP helo=<mail-wm0-f49.google.com> Aug 1 16:22:28 9dok43ksalv postfix/smtpd[2583]: disconnect from mail-wm0-f49.google.com[74.125.82.49]
顯然 Postfix 沒有找到電子郵件的最終目的地。我以前從來沒有配置過 Postfix,所以我現在有點迷失了。
VestaCP
曾經為我處理過這個問題,直到現在我從來沒有遇到過問題。有人會很好地指出我正確的方向嗎?我真的很感激能再次收到電子郵件,並使 POP3 和 IMAP 正常工作。
提前致謝。如果您需要更多資訊,請與我們聯繫。
錯誤資訊是 550 5.1.1 user unknown in local recipient table
我認為您可能需要查看本地收件人映射/別名映射並確保它們配置正確。還要查看 main.conf 中的 mydestinations 值,就好像配置了域一樣,它們應該發生本地傳遞
值得一讀這個答案 對 alias_maps 和 virtual_alias_maps 感到困惑
下面還有一些很好的資訊 http://www.postfix.org/postconf.5.html#local_recipient_maps
“本地別名數據庫
當郵件要在本地投遞時,本地投遞代理通過別名數據庫執行每個本地收件人名稱。映射不會影響郵件標頭中的地址。本地別名通常用於實現分發列表,或將標準別名(例如 postmaster)直接發送給真實的人。該表還可用於將 Firstname.Lastname 地址映射到登錄名。”
或者虛擬別名地圖
“通過這種方法,每個託管域都可以擁有自己的資訊等電子郵件地址。但是,它仍然使用 Linux 系統帳戶進行本地郵箱傳遞。
使用虛擬別名域,每個託管地址都被別名為本地 UNIX 系統帳戶或遠端地址。下面的範例顯示瞭如何將這種機制用於 fossedu.org 和 linuxelabs.com 域。”
https://help.ubuntu.com/community/PostfixBasicSetupHowto#Local_Alias_database