我正在运行一个 Postfix 邮件服务器,并且我试图了解为什么发送到的电子邮件[email protected]
实际上被发送到[email protected]
。
在命令行上,我发送一封简单的测试电子邮件:
echo test | mail -s test [email protected]
在 中maillog
,我看到:
3 月 20 日 23:40:57 某些服务器 sendmail[29680]: r2L3euXm029680: from=root, size=48, class=0, nrcpts=1, msgid=<[电子邮件保护]>,中继 = root@localhost
所以我明白 sendmail 用于发送电子邮件,并且我的 Postfix 服务器将接收它。
我在 Postfix 中启用了详细选项,因此我有相当长的日志,但我觉得错误的部分是:
Mar 20 23:40:57 some-server postfix/smtpd[29681]: < localhost.localdomain[127.0.0.1]: MAIL From:<[email protected]> SIZE=48 [email protected]
Mar 20 23:40:57 some-server postfix/smtpd[29681]: > localhost.localdomain[127.0.0.1]: 250 2.1.0 Ok
Mar 20 23:40:57 some-server postfix/smtpd[29681]: < localhost.localdomain[127.0.0.1]: RCPT To:<[email protected]>
因此“发件人”部分没有问题;我正在从 root 身份进行测试,并且机器主机名是some-server.example.com
,但是谁将TO
电子邮件地址从更改[email protected]
为 呢[email protected]
?
据我从日志中了解,最后一行是 Postfix 从 sendmail 收到的命令。那么为什么当我在命令行上要求其他内容时,sendmail 说我想发送到该地址?
这只返回评论:
grep -ri some-server /etc/mail /etc/postfix
我也尝试将电子邮件发送到[email protected]
,它也被重写为[email protected]
,因此问题出在主机上,而不是用户,被重写。
如果需要,我很乐意提供更多日志。只需让我知道要尝试什么以及哪些日志有助于了解正在发生的事情。
谢谢。
编辑#1:
如果我尝试sendmail -bt
,并输入,我会得到这个:check_mail <[email protected]>
...
Canonify2 input: myself < @ example . com >
Canonify2 returns: myself < @ some-server . example . com . >
...
不确定那是什么意思。
编辑#2:
我读到过一篇文章,说域名重写可能是由域名中的通配符 MX 条目引起的。我确实遇到了这个问题,后来我把它删除了。这并没有解决问题,但也许传播过程存在延迟(即使 dig 似乎表明传播过程现已完成)。
答案1
看来问题出在 DNS 条目上。
我删除了原来的通配符MX
,创建了MX
for ,并且还更改了记录中的some-server.example.com
@ ,现在 Sendmail 无需重写我的主机名就可以工作。CNAME
example.com
A