电子邮件标头中的 localhost

电子邮件标头中的 localhost

我正在使用 sendmail 从文本文件发送一封非常简单的电子邮件。以下是文本文件:

to:[email protected]
from:[email protected]
subject:Testing

test test test

我发送的内容如下:

sendmail -t < mail.txt

我运行 sendmail 的服务器是 hostname.tld。这是 /etc/hosts:

12.34.56.78     hostname hostname.tld
127.0.0.1       localhost

其中 hostname.tld 是服务器的 fqdn,12.34.56.78 是服务器的公共 IP。/etc/hostname 仅包含 hostname.tld

当我收到电子邮件时,我收到以下标题:

Received: from hostname.tld (hostname.tld [127.0.0.1])

我不需要 127.0.0.1,我希望有公共 IP,但无论我做什么,都无法让 sendmail 使用它。我还编辑了 /etc/mail/sendmail.mc,使其包含以下行:

define(`confDOMAIN_NAME', `hostname.tld')dnl

但它什么也没做。

我读过很多帖子,人们都遇到了类似的问题,但似乎没有办法解决。我该怎么办?

答案1

这是我的解决方案:

在 /etc/hosts 中:

12.34.56.78     hostname.tld
127.0.0.1       localhost

/etc/mail/submit.mc:

FEATURE(`msp', `[12.34.56.78]', `25')dnl

(最初它的 IP 是 127.0.0.1,而不是我的公共 IP)

/etc/mail/sendmail.mc:

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=12.34.56.78')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=12.34.56.78')dnl

(这两行最初都是 127.0.0.1,更改它会使 sendmail 监听你的公共 IP 而不是本地主机)。

运行命令:

make -C /etc/mail

重新加载sendmail:

service sendmail reload

发送测试邮件后:

sendmail -t < mail.txt

我现在不喜欢的标题是:

Received: from hostname.tld (hostname.tld [12.34.56.78])

并且标题中没有任何地方提到 localhost 或 127.0.0.1

答案2

当您使用本地计算机上的脚本发送电子邮件时,它从本地主机收到。公网 IP 将显示在下Received:一行。

相关内容