![在docker容器中更改sendmail的HELO/ELHO头](https://linux22.com/image/792789/%E5%9C%A8docker%E5%AE%B9%E5%99%A8%E4%B8%AD%E6%9B%B4%E6%94%B9sendmail%E7%9A%84HELO%2FELHO%E5%A4%B4.png)
我有一个 Debian 11 docker 容器,其中安装了 sendmail v. 8.15.2 作为 MTA。不幸的是,spamhaus.org 将主机 IP 列入了黑名单,因为从此容器发送的邮件的 HELO 标头包含 docker 容器的本地 IP 地址。消息是:
{主机 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
。
有人能指出我的解决办法吗?
答案1
我通过在 docker 文件中添加域作为主机名解决了这个问题,如下所示:
services:
typo3:
image: software.example.com:5050/scoped/vendor/myapp:production
hostname: my-domain.example.com
这也照顾到了 sendmail 中的 HELO/ELHO 标头。