web-dev-qa-db-ja.com

Exim:事前定義された送信者ですべてのメールを送信します

私たちはサーバーでEximを使用して、ローカルの自動化されたユーザーからのみ、ルート、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を調べ、一致しない場合は事前定義されたアドレスを使用する必要があります。しかし、これは非常に二次的なものです。

このアドレスが使用される場所は2つあります。
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
8
Gregory MOUSSAT

より良いアプローチ:

書き換えセクションを変更します。lsearchwildlsearchに変更します(2行を変更する必要があります)。これにより、ワイルドカードと正規表現を/etc/email-addressesに使用できるようになります

したがって、/etc/email-addressesには次のようなものを含めることができます。
root: [email protected]
*: [email protected]

ファイルは上から下に処理されます。したがって、メールがrootに送信される場合、実際には[email protected]に送信されます。そして他のすべての電子メールは[email protected]に送信されます

9
Gregory MOUSSAT

どこかの後にbegin rewrite(および、beginで始まる次のセクションの前に)これを追加します。
* [email protected] Ffrs

ワイルドカードはすべてのアドレスを表します
[email protected]は必要なアドレスです
Ffrsの略:
Fエンベロープの差出人フィールド
f From:ヘッダーを書き換えます
r Reply-To:ヘッダーを書き換えます
sはSender:ヘッダーを書き換えます

これにより、すべての送信者アドレスが置き換えられます。

2
Bertrand SCHITS