Wir verwenden Exim auf unseren Servern, um E-Mails nur von lokalen automatisierten Benutzern wie root, cron usw. zu senden.
Wir müssen alle möglichen Benutzer angeben /etc/email-addresses
. Zum Beispiel:
root: alert@example.com
cron: alert@example.com
backup: alert@example.com`
Auf diese Weise können wir jede generierte E-Mail empfangen.
Das Problem ist, wenn wir einen Benutzer aus irgendeinem Grund hinzufügen (z. B. wenn wir ein Paket hinzufügen, einige einen Benutzer hinzufügen), können wir vergessen, diesen Benutzer hinzuzufügen /etc/email-addresses
. Meistens ist es kein Problem, aber das ist nicht sauber. Und die Gesamtmethode ist nicht sauber.
Wir möchten Exim so konfigurieren, dass alle E-Mails mit derselben Quelladresse gesendet werden. dh jede gesendete E-Mail kommt vonalert@example.com
Eine Möglichkeit könnte darin bestehen, einen Platzhalter oder einen regulären Ausdruck zu verwenden /etc/email-addresses
, dies wird jedoch nicht unterstützt.
Ich verstehe Exim derzeit nicht genug, um herauszufinden, wie man dies auf die eine oder andere Weise modifiziert.
Im Idealfall sollte Exim /etc/email-addresses
zuerst prüfen und, falls keine Übereinstimmung vorliegt, die vordefinierte Adresse verwenden. Das ist aber sehr zweitrangig.
Es gibt zwei Stellen, an denen diese Adresse verwendet wird:
1. Wenn Exim den FROM:
Befehl an den SMTP-Server sendet,
2. innerhalb des Headers
Bearbeiten:
Der Abschnitt zum Umschreiben ist das Original von 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