Postfix

未收到電子郵件:Postfix (CentOS 7) 中的中繼訪問被拒絕

  • August 2, 2017

由於某種原因,我在 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,myhostnamemynetworks; 現在我得到一個不同的錯誤(見下文。)這是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

https://help.ubuntu.com/community/PostfixBasicSetupHowto#Postfix_virtual_Aliases_for_separate_domains_and_Linux_system_accounts

引用自:https://serverfault.com/questions/866355