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

我需要一种configurationsendmail的方式来将每封邮件的信封发件人设置为一个固定值(如[email protected])。 请注意,这是没有回答的任何MASQUERADEfunction/macros(我知道):我想也覆盖信封用户,并将其设置为一个固定值。

编辑:另外,我不想伪装标题发件人。 所以GENERICSTABLE + MASQUERADE_ENVELOPE也不会削减它。 我需要的是相当于命令行sendmail -f [email protected]

(理由:我被客户强迫要经过一个坚持给定信封发件人地址的authentication中转站 – 不,我不是想要规避任何反垃圾邮件的措施,我只是想发送根邮件和其他pipe理的东西 – 异地,它是一个应用程序服务器,所有的邮件都是由服务器发起的,但发件人地址不过是有意义的)

TIA。

这可能是使用丑陋但非常简单的黑客来实现的。 把它放在你的sendmail.mc文件中的MAILER(smtp) ,并生成新的sendmail.cf文件。
必须$: in R行之前有一个制表符(\ t)。
divert(0)取消MAILER_DEFINITIONS影响。

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

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

你可以使用下面的脚本来testing它:

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

您可以使用FEATURE(genericstable)和FEATURE(masquerade_envelope)来重写主机电子邮件域(信封发件人和标题发件人(From :))中的所有发件人地址。

generictable

 @foo.org [email protected] 

不要忘记在sendmail.mc中指定正在进行这种重写的域:

 GENERICS_DOMAIN(`foo.org') 

您可以使用FEATURE(local_no_masquerade)从这种重写中排除本地电子邮件。

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