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: [email protected]
cron: [email protected]
backup: [email protected]`
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 von[email protected]
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
Antworten:
Ein viel besserer Ansatz:
Ändern Sie den Abschnitt zum Umschreiben: Ändern
lsearch
umwildlsearch
(zwei Zeilen müssen geändert werden). Dies ermöglicht die Verwendung von Platzhaltern und regulären Ausdrücken in/etc/email-addresses
Das
/etc/email-addresses
kann also Folgendes enthalten: Die Datei wird von oben nach unten verarbeitet. Wenn also eine E-Mail an root gesendet wird, wird sie wirklich an [email protected] gesendet. Alle anderen E-Mails werden an [email protected] gesendetroot: [email protected]
*: [email protected]
quelle
wildlsearch
Änderung in /etc/exim4/exim4.conf.template vornehmen, ausführensudo update-exim4.conf
undsudo /etc/init.d/exim4 restart
/etc/exim4/conf.d/rewrite/31_exim4-config_rewriting
.Fügen Sie irgendwo danach
begin rewrite
(und vor dem nächsten Abschnitt, der mit einem Anfang beginnt) Folgendes hinzu:* [email protected] Ffrs
Der Platzhalter für jede Adresse
[email protected] ist die Adresse, für die
Ffrs stehen soll:
F den Umschlag
neu schreiben Von Feld f den Header From:
neu schreiben r den Header Reply-To:
neu schreiben s den Header Sender: neu schreiben
Dies ersetzt JEDE Absenderadresse.
quelle