我刚刚关注了这个优秀的教程使用 Postfix/Dovecot/etc 设置邮件服务器。
我成功了,我可以正常发送电子邮件。我使用的域名是jonah.name
。但是,我无法接收来自外部电子邮件或其他内部邮箱的电子邮件。如果我尝试向其中的用户发送电子邮件,我会收到一封“未送达邮件已退回给发件人”的电子邮件,告诉我用户未知。出现的内容如下/var/log/mail.log
:
Aug 17 21:31:27 localhost postfix/smtpd[810]: connect from gateway09.websitewelcome.com[69.93.179.27]
Aug 17 21:31:28 localhost postfix/trivial-rewrite[816]: warning: do not list domain jonah.name in BOTH mydestination and virtual_mailbox_domains
Aug 17 21:31:28 localhost postgrey[27058]: action=pass, reason=triplet found, client_name=gateway09.websitewelcome.com, client_address=69.93.179.27, [email protected], [email protected]
Aug 17 21:31:28 localhost postfix/smtpd[810]: 79B1D38947: client=gateway09.websitewelcome.com[69.93.179.27]
Aug 17 21:31:28 localhost postfix/cleanup[819]: 79B1D38947: message-id=<[email protected]>
Aug 17 21:31:28 localhost postfix/qmgr[732]: 79B1D38947: from=<[email protected]>, size=1634, nrcpt=1 (queue active)
Aug 17 21:31:28 localhost postfix/smtpd[810]: disconnect from gateway09.websitewelcome.com[69.93.179.27]
Aug 17 21:31:30 localhost postfix/smtpd[826]: connect from remotebox[127.0.0.1]
Aug 17 21:31:30 localhost postfix/trivial-rewrite[816]: warning: do not list domain jonah.name in BOTH mydestination and virtual_mailbox_domains
Aug 17 21:31:30 localhost postfix/smtpd[826]: 622BF3894A: client=remotebox[127.0.0.1]
Aug 17 21:31:30 localhost postfix/cleanup[819]: 622BF3894A: message-id=<[email protected]>
Aug 17 21:31:30 localhost postfix/smtpd[826]: disconnect from remotebox[127.0.0.1]
Aug 17 21:31:30 localhost postfix/qmgr[732]: 622BF3894A: from=<[email protected]>, size=2050, nrcpt=1 (queue active)
Aug 17 21:31:30 localhost postfix/trivial-rewrite[816]: warning: do not list domain jonah.name in BOTH mydestination and virtual_mailbox_domains
Aug 17 21:31:30 localhost amavis[30938]: (30938-10) Passed CLEAN, [69.93.179.27] <[email protected]> -> <[email protected]>, Message-ID: <[email protected]>, mail_id: jbjlO+jljnPM, Hits: -0.001, size: 1634, queued_as: 622BF3894A, 1855 ms
Aug 17 21:31:30 localhost postfix/smtp[821]: 79B1D38947: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.3, delays=0.41/0.01/0/1.9, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 622BF3894A)
Aug 17 21:31:30 localhost postfix/qmgr[732]: 79B1D38947: removed
Aug 17 21:31:30 localhost postfix/local[827]: 622BF3894A: to=<[email protected]>, relay=local, delay=0.02, delays=0/0.01/0/0.01, dsn=5.1.1, status=bounced (unknown user: "jonah")
Aug 17 21:31:30 localhost postfix/cleanup[819]: 65CAF38953: message-id=<[email protected]>
Aug 17 21:31:30 localhost postfix/bounce[828]: 622BF3894A: sender non-delivery notification: 65CAF38953
Aug 17 21:31:30 localhost postfix/qmgr[732]: 65CAF38953: from=<>, size=3832, nrcpt=1 (queue active)
Aug 17 21:31:30 localhost postfix/qmgr[732]: 622BF3894A: removed
Aug 17 21:31:30 localhost postfix/smtp[829]: 65CAF38953: to=<[email protected]>, relay=mail.nucleussystems.com[50.116.72.68]:25, delay=0.46, delays=0/0.01/0.33/0.11, dsn=2.0.0, status=sent (250 OK id=1T2U8g-0008VP-Qb)
Aug 17 21:31:30 localhost postfix/qmgr[732]: 65CAF38953: removed
日志确认(第 18 行)用户为“未知”。我重新检查了所有连接到 MySQL 的配置文件,但没有发现任何缺陷。以下是 MySQL 虚拟配置文件:
# /etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
user = mail
password = **password**
hosts = 127.0.0.1
dbname = mail
query = SELECT goto FROM alias,alias_domain
WHERE alias_domain.alias_domain = '%d'
AND alias.address=concat('%u', '@', alias_domain.target_domain)
AND alias.active = 1
# /etc/postfix/mysql_virtual_alias_maps.cf
user = mail
password = **password**
hosts = 127.0.0.1
dbname = mail
table = alias
select_field = goto
where_field = address
additional_conditions = and active = '1'
# /etc/postfix/mysql_virtual_domain_maps.cf
user = mail
password = **password**
hosts = 127.0.0.1
dbname = mail
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '0' and active = '1'
# /etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
user = mail
password = **password**
hosts = 127.0.0.1
dbname = mail
query = SELECT maildir FROM mailbox, alias_domain
WHERE alias_domain.alias_domain = '%d'
AND mailbox.username=concat('%u', '@', alias_domain.target_domain )
AND mailbox.active = 1
# /etc/postfix/mysql_virtual_mailbox_maps.cf
user = mail
password = **password**
hosts = 127.0.0.1
dbname = mail
table = mailbox
select_field = CONCAT(domain, '/', local_part)
where_field = username
additional_conditions = and active = '1'
答案1
上面的日志中没有答案吗?“警告:不要在 mydestination 和 virtual_mailbox_domains 中同时列出域 jonah.name”
编辑 :
尝试“mydestination = localhost”
“mydestination:通过 $local_transport 邮件传递传输传递的域列表。”例如,postfix 尝试查找名为 jonah 的真实用户。根据您的设置,您希望用户 jonah 是虚拟的,因此 jonah.name 不能是 mydestination 的一部分(我同意,这很棘手)。
答案2
看起来发件人被列入了灰名单,如果发件人在大约 300 秒后重试,则应该会通过。您也可以禁用灰名单。