我正在运行一堆 Debian/Ubuntu 服务器,其中有一个核心主服务器,所有其他 Web 服务器都连接到该服务器。但是现在,当我们的核心服务器发送电子邮件时(就像有人通过我们的管理 Web GUI 发送电子邮件),第一个“Received:”标题列出了我们主服务器的地址,这是我们想要避免的。
所以我的计划是设置一种方法,通过它应该真正来自的服务器发送电子邮件。因此,当我们从 www.backend.com 的软件发送电子邮件时,我希望标题反映 www.frontend.com。我尝试为 Ubuntu 查找 SMTP 代理,但没有找到太多,除了寻找称为 MTA 的东西。
我玩弄了 nullmailer 和 msmtp,但我似乎无法按照我期望的方式工作,例如在 www.backend.com 上为此帐户设置 SMTP 凭据以指向 www.frontend.com 和让前端服务器连接到我们的电子邮件提供商。我正在尝试做的可能吗?
编辑TL;DR
我一直在尝试设置 SMTP 中继服务器,但无法远程连接到我的 postfix SMTP 服务器。如何在 Debian Ubuntu 上设置简单的电子邮件中继服务器?不确定这是否是正确的术语,因为似乎有数百篇文章解释了如何使用,但我无法让一篇文章发挥作用
你的MTA是 postfix,你想使用它两次;作为内部网主机和边缘中继。因此,第一步不是删除接收到的标头,而是确保允许中继并发生,这将在标头中添加“前端”中继。一旦中继工作,中继可以删除或替换标题行。
关于中继 (FRONTEND) docs#relay_from
mynetworks = 127.0.0.0/8 IP_OF_BACKEND/32 ...others?
在发件人 (BACKEND)中继主机上
relayhost = [www.frontend.com]
对于简单的过滤器,header_checks就足够了。
header_checks = pcre:/etc/postfix/header_checks
(pcre - 确保安装了 postfix-pcre 支持,或者按照下一个链接中的 POSIX 正则表达式调试。)
通常最好清理标头而不是删除它,因此清理它的文件的示例内容在这里,尽管它应该匹配以仅重写来自backend
而不是所有主机的接收标头.*
。
因此,在检查了您要替换的实际接收标头并决定将哪些部分保留为正则表达式组之后,您的替换可能很简单:
/^Received: from www.backend.com.*id\s(\w+).*/
REPLACE Received: from [127.0.0.1] (localhost [127.0.0.1]) with SMTP id $1
删除接收到的标头本质上是相同的,但可以使用该IGNORE
操作代替REPLACE
并且需要更简单的正则表达式,因为没有要构建的替代标头。但是,当您为以后的要求添加Milters等时,删除标题更有可能导致问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句