我们有一个运行 POSTFIX 的邮件服务器,带有虚拟邮箱。该服务器在 Ubuntu 14.04 下运行良好。我们将其升级到 16.04,现在服务器拒绝所有虚拟邮箱电子邮件。在 14.04 下工作的相同 postfix 配置文件现在在 16.04 中使用。但是,服务器不会接受我们的虚拟邮箱的传入 SMTP 电子邮件。
我启用了调试对等列表在postfix/main.cf它为我提供了问题的提示。以下是来自系统日志的入站事务:
Apr 19 08:04:57 journal postfix/smtpd[18738]: connect from mail-co1nam03lp0024.outbound.protection.outlook.com[216.32.181.24]
Apr 19 08:04:57 journal lsass: [lsass] Failed to find user, group, or domain by name (name = '[email protected]', searched host = 'dc1.masked-domain.com') -> error = 40071, symbol = LW_ERROR_NO_SUCH_OBJECT
Apr 19 08:04:57 journal lsass: [lsass] Failed to find user, group, or domain by name (name = '@journal.masked-domain.com', searched host = 'dc1.masked-domain.com') -> error = 40071, symbol = LW_ERROR_NO_SUCH_OBJECT
Apr 19 08:04:57 journal postfix/smtpd[18738]: NOQUEUE: reject: RCPT from mail-co1nam03lp0024.outbound.protection.outlook.com[216.32.181.24]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<NAM03-CO1-obe.outbound.protection.outlook.com>
Apr 19 08:04:57 journal postfix/smtpd[18738]: disconnect from mail-co1nam03lp0024.outbound.protection.outlook.com[216.32.181.24] ehlo=1 m
这就是问题:
Apr 19 08:04:57 journal lsass: [lsass] Failed to find user, group, or domain by name (name = '@journal.masked-domain.com', searched host = 'dc1.masked-domain.com') -> error = 40071, symbol = LW_ERROR_NO_SUCH_OBJECT
由于某种原因,POSTFIX 会使用本地计算机进行邮箱(用户)查找,而不是使用虚拟邮箱配置。我们在所有服务器上运行 BeyondTrust PBIS 以实现 Active Directory 集成。它在升级到 16.04 之前已安装并正常运行 - 换句话说,它在 14.04 下运行良好。
我们使用此 URL 通过 DOVECOT 配置我们的 POSTFIX 虚拟邮箱服务器:https://help.ubuntu.com/community/PostfixVirtualMailBoxClamSmtpHowto
似乎 16.04 中的 Postfix 没有任何变化,导致这个和其他谷歌配置文档显示这种配置格式几乎相同。
以下是我们的postfix/main.cf文件:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
myhostname = journal.masked-domain.com
inet_interfaces = all
inet_protocols = all
myorigin = $myhostname
mailbox_size_limit = 0
message_size_limit = 52428800
recipient_delimiter = +
# Virtual Configuration
virtual_mailbox_domains = /etc/postfix/vhosts
virtual_mailbox_base = /d01/vmail
virtual_mailbox_limit = 0
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_minimum_uid = 1000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
# For debugging purposes, turn off when working properly.
debug_peer_list = journal.masked-domain.com
# (end of file)
我怀疑问题在于postfix/master.cf文件,但我不知道从哪里开始。有人能帮助配置 POSTFIX 以正确检查用户的虚拟邮箱而不是使用本地服务器用户吗?
答案1
发现问题了。在日志中看到以下内容:
Apr 19 07:18:34 journal postfix/trivial-rewrite[16893]: warning: do not list domain journal.masked-domain.com in BOTH mydestination and virtual_mailbox_domains
此日志条目引用了postfix/main.cf:
mydestination =
我们之前从未定义过它,但显然 16.04 版的 postfix 现在假定本地主机名我的目的地。在我们的例子中,“journal.masked-domain.com”是我们的主机名和我们试图服务的虚拟域。它在 12.04 和 14.04 下运行良好,但在 16.04 下不起作用。由于我们只使用虚拟邮箱,因此我们将此行添加到我们的postfix/main.cf文件:
mydestination = localhost
BINGO,它又能正常工作了!