我有一个 Debian 11 docker 容器,其中 sendmail v. 8.15.2 作为 MTA 安装。不幸的是,spamhaus.org 将主机 IP 列入黑名单,因为从此容器发送的邮件的 HELO 标头包含 docker 容器的本地 IP 地址。消息是:
{Host IP} 正在与使用裸 IP 地址的 HELO 值建立 SMTP 连接。
根据此处的其他答案,我尝试将以下内容添加到 /etc/mail/sendmail.mc:
define(`confDOMAIN_NAME', `my-domain.example.com')dnl
define(`confHELO_NAME', `my-domain.example.com')dnl
进而
m4 sendmail.mc > sendmail.cf
service sendmail restart
它将其转换为
Djmy-domain.example.com
O HeloName=my-domain.example.com
在sendmail.cf
。但无济于事,当发送测试邮件时我仍然收到
echo "Subject: sendmail test" | sendmail -v -f "[email protected]" [email protected]
…
050 250-STARTTLS
050 250 Ok
050 >>> STARTTLS
050 220 Ready to start TLS
050 >>> EHLO 10.0.1.248
…
然后我发现我还应该添加所需的发件人域/etc/mail/local-host-names
(再次重新启动 sendmail 服务),但这似乎也没有改变任何内容。与添加域名/etc/hosts
作为替代环回相同
127.0.1.1 my-domain.example.com
或将域添加到/etc/mailname
.
有人能指出我的解决方案吗?
我通过在 docker 文件中添加域作为主机名解决了这个问题,如下所示:
这也处理 sendmail 中的 HELO/ELHO 标头。