Debian: Mit Exim4 (MTA bzw. E-Mailtransport) Mails von einem Server auf eine externe E-Mail-Adresse umleiten
Da ich ein kleines Problem nicht sofort lösen konnte, versuche ich kurz meine Konfigurationsschritte festzuhalten. Bei den meisten meiner Systeme hat die lokale Mailzustellung einfach funktioniert, daher brauchte ich mich nie so richtig damit auseinandersetzen. Bei unserem neuen RootServer leider nicht. 🙂 Bei der Einrichtung eine Raspberry Pi’s bin ich auf das gleiche Problem gestoßen und habe gleich die Konfigurationsschritte festgehalten.
Nach kurzem einlesen habe ich mich für exim4 entschieden. Zuerst habe ich exim mit Smarthost installiert. Dabei versendet der Server Mails über einen externen SMTP Server.
Warum exim?
- weil es der Standard unter Debian ist
- weil ich nur die Systemmails an eine externe Mailadresse schicken möchte und der Server nicht als SMTP-Server benutzt werden soll.
So, los gehts mit der Standardinstallation von exim4 unter Debian.
aptitude install exim4
Die Ausgabe sollte so, oder so ähnlich aussehen.
Die folgenden NEUEN Pakete werden zusätzlich installiert: exim4 Die folgenden Pakete werden aktualisiert: exim4-base exim4-daemon-light 2 Pakete aktualisiert, 1 zusätzlich installiert, 0 werden entfernt und 146 nicht aktualisiert.
Sollte die Konfiguration nicht automatisch starten, kann Diese mit dem folgenden Befehl erledigt werden.
dpkg-reconfigure exim4-config
Jetzt bitte die folgenden markierten Antworten auswählen und bestätigen.
Bei diesem Punkt wird festgelegt, dass wir über einen externen SMTP Server Mails versenden wollen.
Hier sollte der Name des Rechners eingetragen sein. Bei mir hat er es immer automatisch erkannt und übernommen. Wenn nicht, sicherheitshalber noch mal mit „hostname“ prüfen, welchen Namen der Rechner hat.
Kann man so lassen. Der Raspberry hört nur auf sich selbst.
Kann man auch so lassen, sollte der genaue Rechnername nicht aufgeführt sein, dann den bitte mit eingetragen.
Wieder den Rechnernamen eintragen.
Hier wird der externe SMTP-Server mit Portnummer angegeben. Man kann bei der ersten Einrichtung diesen Punkt überspringen. Man muss sowieso in der Konfigurationsdatei noch kleine Anpassungen machen, da kann auch diese Daten mit ergänzen.
Ebenfalls mit nein beantworten.
Jetzt ist die Konfiguration abgeschlossen. Der Mailserver wird automatisch neu gestartet. Die erzeugte Konfig-Datei sollte in etwas so aussehen.
cat /etc/exim4/update-exim4.conf.conf
# /etc/exim4/update-exim4.conf.conf # # Edit this file and /etc/mailname by hand and execute update-exim4.conf # yourself or use 'dpkg-reconfigure exim4-config' # # Please note that this is _not_ a dpkg-conffile and that automatic changes # to this file might happen. The code handling this will honor your local # changes, so this is usually fine, but will break local schemes that mess # around with multiple versions of the file. # # update-exim4.conf uses this file to determine variable values to generate # exim configuration macros for the configuration file. # # Most settings found in here do have corresponding questions in the # Debconf configuration, but not all of them. # # This is a Debian specific file dc_eximconfig_configtype='satellite' dc_other_hostnames='localhost:pi' dc_local_interfaces='127.0.0.1 ; ::1' dc_readhost='pi' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='smtp.1und1.de::587' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='true' dc_mailname_in_oh='true' dc_localdelivery='mail_spool'
Nötige Änderungen in den Konfigurationsdateien
Jetzt sollten wir die Konfigurationsdatein mit einem Editor bearbeiten. Ich nehme dafür joe, es geht aber auch vi oder vim.
joe /etc/exim4/passwd.client
Mit dieser Datei wird der Zugang zu eurem externen Mailserver hergestellt. Ich nehme meinen 1und1 Account. Die einzelnen Felder werden dabei mit einem Doppelpunkt getrennt. Solltet ihr ein Rautezeichen im Passwort haben, versucht es mit Anführungszeichen. Ich hatte mal ein Problem diesbezüglich und habe mein Passwort damals geändert.
smtp.1und1.de:example@mail.org:Passwort
Das war es schon fast. Ein wichtiger Punkt zum Schluss, das umlenken (Mapping) der Absenderadressen. Als die internen E-Mailadressen nicht umgeschrieben wurden, kam es bei mir immer zu dem unten angegebenen Fehler.
550-Requested action not taken: mailbox unavailable\n550 invalid DNS MX or A/AAAA resource record
Dies kommt daher, dass wir versuchen eine Mail mit einem falschen Mailboxnamen einzuliefern. Manche Provider scheint das nicht zu stören, bei 1und1 ist das anscheinend nicht so.
Umlenken der Absenderadressen, für jeden User separat konfigurierbar
joe /etc/email-addresses
root: example@mail.org
In dieser Datei ordnen wir den internen Benutzern ihre externen Mailadressen zu. Die wird bei dem externen Versand benutzt.
Umlenken der System E-Mails an eine externe Adresse
Um die System E-Mails noch auf einen externen Account umzulenken, ist noch eine kleine weitere Anpassung nötig.
joe /etc/aliases
Am Ende der Datei für root noch einen Alias (Umlenkung) einfügen.
root: example@mail.org
Jetzt sollten eure E-Mails an root auf das externe Mailkonto zugestellt werden. Testen kann man das am schnellsten mit dem unteren Kommandozeilenbefehl.
echo "E-Mailtext" | mail -s"Test" root
Das wars, ich hoffe ich konnte bei der ein odere anderen Installation behilflich sein.
Update:
Als ich alles eingerichtet hatte, kamen meine Mails zwar an, aber es wurde auch zeitverzögert immer noch eine Mail mit unzustellbar ausgeliefert. Das kam von der Warteschlange, in der viele Mails standen, die bei den Test’s nicht zugestellt werden konnten. Als ich die Warteschlange von exim mit dem unteren Befehl geleert habe, kommen nur noch die gewünschten Mails an.
exim -bp|grep frozen|awk '{print $3}' |xargs exim -Mrm