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

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

我需要一种方法来配置 sendmail,将每封邮件的信封发件人设置为一个固定值(比如[电子邮件保护])请注意,这是不是通过任何 MASQUERADE 功能/宏(我所知道的)回答:我还想覆盖信封用户并将其设置为固定值。

编辑:另外,我不想伪装标头发​​送者。因此 GENERICSTABLE + MASQUERADE_ENVELOPE 也不起作用。我需要的是命令行的等效项sendmail -f [email protected]

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

短暂性脑缺血。

答案1

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

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

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

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

/usr/sbin/sendmail -bt <<END
/tryflags es
/try esmtp [email protected]
END

答案2

您可以使用特征(通用稳定)特征(伪装信封)重写主机电子邮件域中的所有发件人地址(信封发件人和标题发件人(发件人:))。

通用表

@foo.org  [email protected]

不要忘记在 sendmail.mc 中指定进行此类重写的域:

GENERICS_DOMAIN(`foo.org')

您可以使用特征(local_no_masquerade)将本地电子邮件排除在此类重写之外。

http://www.sendmail.com/sm/open_source/docs/m4/masquerading_relaying.html

相关内容