我们在我们的服务器上使用Exim来发送仅来自本地自动用户的电子邮件,例如root,cron等。
我们必须指定每个可能的用户到/etc/email-addresses 。 例如:
root: [email protected] cron: [email protected] backup: [email protected]`
这使我们能够收到每个生成的电子邮件。
问题是,当我们添加一个用户出于任何原因(例如当我们添加一个包,一些添加一个用户)时,我们可以忘记添加这个用户到/etc/email-addresses 。 大多数时候这不是问题,但是这不是干净的。 而整体的方法是不干净的。
我们希望configurationExim来发送每个具有相同源地址的邮件。 即每个发送的电子邮件都来自[email protected]
一种方法可能是在/etc/email-addresses使用通配符或正则expression式,但不支持。
我目前还不了解Exim足够了解如何以某种方式修改它。
理想情况下,Exim应该首先查看/etc/email-addresses ,如果不匹配,则使用预定义的地址。 但这是非常次要的。
有两个地方使用这个地址:
1.当Exim发送FROM:命令到SMTP服务器
2.标题内
编辑:
重写部分是Debian的原始部分
begin rewrite .ifndef NO_EAA_REWRITE_REWRITE *@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses} \ {$value}fail}" Ffrs *@ETC_MAILNAME "${lookup{${local_part}}lsearch{/etc/email-addresses} \ {$value}fail}" Ffrs .endif
一个更好的方法:
修改重写部分:通过wildlsearch更改lsearch (必须更改两行)。 这允许使用通配符和正则expression式到/etc/email-addresses
所以/etc/email-addresses可以包含这样的事情:
root: [email protected]
*: [email protected]
该文件从上到下进行处理。 所以如果电子邮件发送到根目录,它真的发送到[email protected]。 而其他每封电子邮件都会发送到[email protected]
begin rewrite (在下一节开始之前)添加这个:
* [email protected] Ffrs
通配符代表每个地址
[email protected]是你想要的地址
Ffrs代表:
F重写字段的信封
重写From:标题
r重写Reply-To:标题
重写发件人:标题
这将取代每个发件人地址。