每个遇到邮件的邮件传输代理都会添加一个Receive
标头,以指示邮件到达的位置、时间和方式,以及有关接收者的一些数据。当我从 Mac Mail.app MUA 发送电子邮件时,我的 Postix MTA 会添加:
Received: from mycomp-mbp.domain_not_set.invalid (cpe-MY-PERSONAL-IP.dynamic.ISP.net [MY-PERSONAL-IP]) by mydomain.com (Postfix) with ESMTPSA id 71F1D5C551 for <[email protected]>; Fri, 1 Feb 2019 11:17:45 +0100 (CET)
我感觉我向陌生人透露了太多个人信息。我该如何配置 Postfix,以便它替换我的 IP 地址,mycomp-mbp.domain_not_set.invalid
甚至替换我的 ISP 提供商。除了这一行之外,这里的任何数据都可以提前准备好,不需要一些替换魔法:( 接收器是动态的)和我的服务器的 IP 地址(有时它使用 IPv4,有时使用 IPv6)。ESMTPSA id 71F1D5C551 for <[email protected]>
我编辑了/etc/postfix/main.cf
包含触发标题检查的行:
postconf -e "header_checks = pcre:/etc/postfix/header_checks"
所以现在一切都归结为创建正确的指令。
我将非常感激您的任何建议。
答案1
例子header_checks
:
/^Received:.*with ESMTPSA/ IGNORE
/^X-Originating-IP:/ IGNORE
/^X-Mailer:/ IGNORE
/^Mime-Version:/ IGNORE
/^User-Agent:/ IGNORE
删除所有路由和 MUA 信息。
答案2
sudo nano /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
sudo nano /etc/postfix/header_checks
/^Received:(.*?)with ESMTPSA(.*?)/ REPLACE Received: from example.com (example.com [1.1.1.1]) by mail.example.com (Postfix) with ESMTPSA$2
/^User-Agent:/ IGNORE
sudo service postfix restart && service postfix status
- 您需要更改 postfix
main.cf
文件并添加该header_checks
行。 - 您需要创建
header_checks
文件并添加 2 行。第一行将您的 IP 替换为来自您服务器的 IP。第二行删除 User-Agent(如果您使用 Thunderbird 或其他程序)。最好的方法是从您的服务器发送一封带有代码的电子邮件,看看标题是什么样子,然后在上面的正则表达式中使用它。 - 重新启动 postfix。
最好实际发送Received ESMTPSA
您想要的标题,而不是删除它,因为您可能会被标记为垃圾邮件,因为这个标题实际上是邮件标准所要求的。
这只会影响接收电子邮件的邮件服务器,您的日志仍会保留实际发件人 IP。如果您检查,/var/log/mail.log
您将看到类似这样的记录。或类似这样的日志postfix/submission/smtpd[25725]: 5EBA4BF4CA: client=unknown[2.2.2.2], sasl_method=PLAIN, [email protected]
postfix/cleanup[25733]: 5EBA4BF4CA: replace: header Received: from [10.10.10.10] (unknown [2.2.2.2])??by mail...