Sendmail:将信封发件人设置为固定值

Ali*_*orm 6 sendmail

我需要一种方法来配置 sendmail,将每条消息的信封发件人设置为固定值(例如 foo@bar.com)。请注意,任何 MASQUERADE 功能/宏(据我所知)都没有回答这个问题:我还想覆盖信封用户并将其设置为固定值。

编辑:另外,我不想伪装标头发​​送者。所以 GENERICSTABLE + MASQUERADE_ENVELOPE 也不会削减它。我需要的是相当于命令行sendmail -f foo@bar.com

(理由:我被客户强迫通过一个身份验证中继,该中继坚持拥有给定的信封发件人地址 - 不,我并不是试图规避任何反垃圾邮件措施,我只是想发送 root 的邮件 - 以及其他管理内容 - 异地。它是一个应用程序服务器,所有邮件均由服务器发起,但发件人地址仍然需要有意义)

TIA。

AnF*_*nFi 3

它可以通过使用丑陋但非常简单的 hack 来实现。将其放在文件MAILER(smtp)sendmail.mc并生成新sendmail.cf文件。行前必须有
一个制表符 (\t) 。取消 的效果。$:R
divert(0)MAILER_DEFINITIONS

MAILER_DEFINITIONS
SEnvFromSMTP
R$+ <@foo.org.>   $: john.doe <@example.net.>
divert(0)
Run Code Online (Sandbox Code Playgroud)

它在处理所有基于 smtp 的邮件程序的信封发件人地址的规则集末尾添加了额外的重写。R 行将所有 *@foo.org 地址重写为 john.doe@example.net

您可以使用以下脚本对其进行测试:

/usr/sbin/sendmail -bt <<END
/tryflags es
/try esmtp xyz@foo.org
END
Run Code Online (Sandbox Code Playgroud)