我需要一种方法来配置 sendmail 以将每封邮件的信封发件人设置为固定值(例如 [email protected])。请注意,任何 MASQUERADE 功能/宏(我知道)都没有回答这个问题:我还想覆盖信封用户并将其设置为固定值。
编辑:另外,我不想伪装标头发件人。所以 GENERICSTABLE + MASQUERADE_ENVELOPE 也没有削减它。我需要的是相当于命令行sendmail -f [email protected]
(理由:我被迫 - 被客户 - 通过一个身份验证中继,它坚持有一个给定的信封发件人地址 - 不,我不是试图规避任何反垃圾邮件措施,我只是想发送 root 的邮件 - 和其他管理的东西——异地。它是一个应用服务器,所有的邮件都是由服务器发起的,但是发件人地址需要有意义)
TIA。
它可以使用丑陋但非常简单的黑客来实现。将其
MAILER(smtp)
放在您的sendmail.mc
文件中并生成新sendmail.cf
文件。行前必须有一个制表符 (\t) 。取消 的效果。
$:
R
divert(0)
MAILER_DEFINITIONS
它在规则集处理所有基于 smtp 的邮件的信封发件人地址的末尾添加了额外的重写。R 行将所有 *@foo.org 地址重写为 [email protected]
您可以使用以下脚本对其进行测试:
您可以使用FEATURE(genericstable)和FEATURE(masquerade_envelope)重写主机电子邮件域中的所有发件人地址(信封发件人和标头发件人 (From:))。
通用的
不要忘记在 sendmail.mc 中指定进行此类重写的域:
您可以使用FEATURE(local_no_masquerade)从此类重写中排除本地电子邮件。
http://www.sendmail.com/sm/open_source/docs/m4/masquerading_relaying.html