未收到电子邮件:Postfix 中的中继访问被拒绝(CentOS 7)

未收到电子邮件: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 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> 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

阅读完上面提到的文章后,我定义了mydomainmyhostnamemynetworks;现在我得到了不同的错误(见下文)。以下是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 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> 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 正常工作,我将不胜感激。

提前致谢。如果您需要更多信息,请告诉我。

答案1

错误消息是 550 5.1.1 本地收件人表中的用户未知

我认为您可能需要查看本地收件人映射/别名映射并确保它们配置正确。还请查看 main.conf 中的 mydestinations 值,如果配置了域,则应该进行本地传递

值得一读这个答案 对 alias_maps 和 virtual_alias_maps 感到困惑

下面也有一些很好的信息 http://www.postfix.org/postconf.5.html#local_recipient_maps

“本地别名数据库

当邮件要在本地投递时,本地投递代理会通过别名数据库运行每个本地收件人姓名。映射不会影响邮件头中的地址。本地别名通常用于实现分发列表,或将标准别名(如邮政局长)的邮件直接发送给真实的人。该表还可用于将 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

答案2

检查一下:

后缀:收件人地址被拒绝:本地收件人表中的用户未知

解决方案(在这种情况下),正如 techieb0y 所解释的那样,是消除$mydomain 来自以下行:

mydestination = $mydomain, localhost.$mydomain, localhost

相关内容