Exim:使用预定义的发件人发送每封电子邮件

Exim:使用预定义的发件人发送每封电子邮件

我们在服务器上使用 Exim 仅从本地自动用户(如 root、cron 等)发送电子邮件。

我们必须指定所有可能的用户/etc/email-addresses。例如:

root: [email protected]  
cron: [email protected]  
backup: [email protected]` 

这使我们能够收到生成的每封电子邮件。

问题是,当我们出于某种原因添加用户时(例如,当我们添加一个包时,有些人会添加一个用户),我们可能会忘记将此用户添加到/etc/email-addresses。大多数情况下这不是问题,但这并不干净。而且整个方法也不干净。
我们希望将 Exim 配置为使用相同的源地址发送每封电子邮件。即,每封发送的电子邮件都来自[email protected]

一种方法是使用通配符或正则表达式,/etc/email-addresses但不支持。
我目前对 Exim 了解不够,无法弄清楚如何以某种方式修改它。
理想情况下,Exim 应该首先进行检查/etc/email-addresses,如果不匹配,则使用预定义的地址。但这是次要的。

此地址有两个用途:
1. EximFROM:向 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

答案1

一个更好的方法:

修改重写部分:更改lsearchwildlsearch(必须更改两行)。这允许使用通配符和正则表达式/etc/email-addresses

因此,/etc/email-addresses可以包含以下内容: 文件从上到下进行处理。因此,如果将电子邮件发送给 root,则实际上将其发送给
root: [email protected]
*: [email protected]

[电子邮件保护]. 所有其他电子邮件都发送至[电子邮件保护]

答案2

在之后的某个地方begin rewrite(在以 begin 开头的下一个部分之前)添加以下内容:
* [email protected] Ffrs

通配符代表所有地址
[电子邮件保护]是您想要的地址
Ffrs 代表:
F 重写信封发件人字段
f 重写发件人:标题
r 重写回复:标题
s 重写发件人:标题

这将替换每个发件人地址。

相关内容