一年前,我按照以下指南设置了一个 Postfix 电子邮件服务器:https://www.howtoforge.com/virtual-users-and-domains-with-postfix-courier-mysql-and-squirrelmail-debian-wheezy。
到目前为止,服务器一直没有出现问题。昨天我购买了一个新域名,需要为其设置一个电子邮件地址。像我以前做过的那样,我将域名添加到数据库中,并为这个新域名创建了一个转发,以指向远离服务器的邮箱。我上周做了类似的设置,并且一直有效。
昨天测试电子邮件地址时,我不断从我发送电子邮件的邮件帐户收到以下退回邮件:
这是主机 email.domain.com 上的邮件系统。
很遗憾地通知您,您的邮件无法发送给一个或多个收件人。附件如下。
如需更多帮助,请发送邮件到邮政。
如果您这样做,请附上此问题报告。您可以从附件的返回消息中删除您自己的文本。
The mail system
我以为 MX 记录没有更新,所以直到今天早上我才去处理。我再次尝试,但还是收到同样的消息。然后我想尝试一下我上周以类似方式设置的电子邮件,但它也停止工作了,返回了相同的错误消息。
如本教程所述,数据库处理转发和实际邮件用户帐户。这些帐户也正常工作,向服务器上的非转发电子邮件帐户发送了电子邮件。这些帐户接收时没有问题。
以下是main.cf
内容:
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
readme_directory = /usr/share/doc/postfix
# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = email.domain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = email.domain.com, localhost, localhost.localdomain
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
virtual_maildir_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transpo$
receive_override_options = no_address_mappings
我重启了 MySQL,重新加载并重启了 Postfix,但问题似乎仍然存在。在过去的一年里,这个配置或服务器总体上没有任何变化。有什么想法吗?
答案1
解决了,谢天谢地!
经过大量的搜索和反复试验后,结果显示:
receive_override_options = no_address_mappings
我的 main.cf 文件中阻止将转发表中的别名加载到 Dovecot。删除该行,重新加载 Postfix,一切又恢复正常!