Wir haben ein funktionierendes Exim-Setup an einem Standort, an dem Benutzer E-Mails senden und empfangen können. Wir versuchen, einen Server einzurichten, der einige Warnungen und Fehler per E-Mail an eine Adresse außerhalb des lokalen Netzwerks sendet.
Das Problem ist:
Das Programm, das die E-Mails sendet, sendet sie unter Verwendung des Benutzernamens, unter dem es ausgeführt wird, und des lokalen Hostnamens des Servers. Dies führt dazu, dass die E-Mails einen Absender im Format haben: [email protected]. Exim sendet diese E-Mails an den SMTP-Server des Internetdienstanbieters, der die E-Mails ablehnt, da sie einen illegalen oder nicht überprüfbaren Absender (die interne Adresse) haben.
Ich denke, ich sollte exim so konfigurieren, dass der Absender neu geschrieben wird, wenn:
- Die Domain des Absenders befindet sich im lokalen Netzwerk
- Die Domäne des Empfängers befindet sich außerhalb des lokalen Netzwerks
Ich habe versucht, eine Art Umschreiben in der Exim-Konfiguration festzulegen, aber es ist mir nicht gelungen, es zum Laufen zu bringen. Ich würde zeigen, was ich versucht habe, aber mir ging beim letzten Besuch der Website die Zeit davon und ich musste zur Originalversion zurückkehren, wobei ich alle Änderungen verlor, die ich versucht hatte.
^
am Anfang der Regel geben, mitS
Ausnahme eines regulären AusdrucksSender:
" Header nicht "Sender-To:
" sein (und es ist eine zu kleine Änderung, um den Beitrag zu bearbeiten)Die Datei
/etc/email-addresses
sollte das Problem behandeln. Dies ist ein Standardbestandteil der Exim-Distribution. Sie müssen einen Datensatz für jeden lokalen Benutzer konfigurieren, der E-Mails sendet.Versuchen Sie eine Linie zu
/etc/email-addresses
mögen:Fügen Sie auf Ihrem MX-Server einen Alias wie folgt hinzu:
Verwenden Sie eine
Reply-to:
Kopfzeile, damit der Empfänger auf die Nachricht antworten kann.Für die Datei
/etc/email-addresses
wird der folgende Umschreibcode verwendet, der sich am Anfang desrewrite
Abschnitts der Konfigurationsdatei befinden sollte.quelle
/etc/email-addresses
existiert nicht auf meinem Server. Kann ich es einfach erstellen oder zeigt das an, dass etwas fehlt?email-addresses
oder überprüfen Sie Ihre Konfigurationsdatei auf den Abschnitt zum Umschreiben. Möglicherweise wurde dies in Ihrer Distribution nicht konfiguriert.grep
,locate
und sah ein paarman
-Seiten, aber nichts gefunden. Sollte die Datei in definiert werdenexim.conf
?exim.conf
. Wenn es fehlt, fügen Sie es hinzu. Stellen Sie sicher, dass die Variablelocal_domains
Ihre Domain enthält./etc/email-addresses
Dies ist praktisch, wenn Sie nur eine E-Mail-Adresse pro Benutzername zuordnen müssen. Wenn Ihr Benutzer jedoch E-Mails mit mehreren Adressen senden muss, müssen Sie diese/etc/email-addresses
jedes Mal ändern , und Sie werden unweigerlich die falsche Adresse verwenden.Ein anderer Ansatz besteht darin, die E-Mail mit dem
exim4
Befehl und seiner-f
Option zu senden :Beachten
-f
Sie, dass Ihr Benutzer entweder zu den vertrauenswürdigen Benutzern von exim gehört oder dass er ihn als zulässigen nicht vertrauenswürdigen Absender akzeptiert , damit die Option funktioniert.In meinem Fall war Letzteres dank dieses Platzhalters in
/etc/exim4/conf.d/main/02_exim4-config_options
:Die andere Lösung besteht darin, die folgende Zeile hinzuzufügen
/etc/exim4/conf.d/main/00_local_settings
(unter der Annahme der geteilten Konfiguration von exim, und sie zu erstellen, falls sie noch nicht vorhanden ist):Für beide Optionen muss die Konfiguration von exim neu geladen werden. Unter Debian:
quelle