:: Home :: Computing :: Downloads :: Scooter :: Links :: Music :: Nonsense :: Mail :: |
---|
Ich bevorzuge ein traditionelles Mail-Setup mit Mail client, Mail delivery agent, POP3- bzw. SMTP-Servern und POP3-Retriver. Der Vorteil hieran ist, dass ich jede Einzelkomponente austauschen kann, ohne das komplette Setup umbauen zu müssen.Über die letzten 25 Jahre waren hier folgende Komponenten im Einsatz:
Zweck | Application |
---|---|
SMTP-Server | Sendmail, Exim, OpenSMTPD |
POP3-Server | TeaPOP, POPa3d |
POP3-Retriever | Fetchmail, mpop, fdm |
Mail Delivery Agent | Procmail, fdm |
Mail User Agent | Pine, Mutt |
Ich habe vor Kurzem nach über 20 Jahren Exim durch OpenSMTPD ersetzt, weil dessen Konfiguration wesentlich kompakter ist und er alles, was ein SMTP-Server für mich leisten muss, mitbringt.
OpenSMTPD ist im Umfeld von OpenBSD entstanden und hat dort vor Jahren Sendmail abgelöst. Inzwischen gibt es auch - ähnlich wie bei der OpenSSH - ein public release, das statt gegen LibreSSL gegen das unter Linux übliche OpenSSL verlinkt wird. Die Installation schleppt insofern unter normalen Umständen keine Abhängigkeiten ins System ein.
Im Mai 2018 ist beginnend mit Version 6.4.0 die Syntax der Konfiguration inkompatibel zu vorherigen Versionen gerändert worden. Im Web sind jedoch noch zahlreiche Tutorials mit der veralteten Syntax anzufinden, mit der neuere Programmversionen nicht mehr funktionieren - also Vorsicht beim Abkupfern...
Das public release kommt mit einer sinnvollen Konfiguration in der Datei /etc/smtp/smtpd.conf an Bord, die hier folgendermassen aussah:
# $OpenBSD: smtpd.conf,v 1.10 2018/05/24 11:40:17 gilles Exp $ # This is the smtpd server system-wide configuration file. # See smtpd.conf(5) for more information. table aliases file:/etc/smtpd/aliases # To also accept external mail over IPv4 or IPv6, # respectively replace "listen on localhost" with: # # listen on 0.0.0.0 # listen on :: listen on localhost action "local" maildir alias <aliases> action "relay" relay # Uncomment the following to accept external mail for domain "example.org" # # match from any for domain "example.org" action "local" match for local action "local" match from local for any action "relay"
Mit dieser Konfiguration ist nach Vervollständigen der Datei /etc/smtpd/aliases der Versand lokaler Mails - beispielsweise von Systemdiensten - möglich. Die einzelnen Zeilen bewirken dabei Folgendes:
Danach kann man den OpenSMTPD aktivieren, starten und einen Test seiner Konfiguration vornehmen:
# systemctl enable smtpd # systemctl start smtpd # smtpd -nv
Es ist absolut kein Problem, OpenSMTPD so zu konfigurieren, dass er sowohl lokale Mails verarbeitet als auch Mails nach Aussen weiterleitet. Der Versand nach Aussen kann entweder über einen lokalen oder einen ausserhalb des eigenen Netzes befindlichen entfernten SMTP-Server erfolgen. BTW: Beide Varianten haben ihre eigenen Vor- und Nachteile.
Ausgehende Mail aller Hosts der domain domain.de wird an den lokalen SMTP-Server auf remote.domain.de weitergeleitet, der dann den Versand nach Aussen vornimmt. Die Konfiguration der einzelnen Hosts dazu könnte folgendermassen aussehen:
# /etc/smtpd/smtpd.conf -- smtpd(8) configuration file # # Date: 2023-10-08 # listen on localhost (ipv4 and ipv6) listen on localhost hostname host.domain.de # tables table aliases file:/etc/smtpd/aliases table accounts { local_user = remote_user@remote.domain.de:remote_password } # actions action "local" mbox alias <aliases> action "remote" relay host smtps://local_user@remote.domain.de:465 auth <accounts> # matches match for local action "local" match from local for any action "remote"
An der ursprünglichen Konfiguration sind folgende Direktiven geändert bzw hinzugefügt worden:
Auch hier empfiehlt sich zunächst ein Test der Konfiguration:
# smtpd -nv
Ich habe hier ein Setup mit T-Online als entferntem SMTP-Server gewählt, aber so ähnlich sollte es auch mit GMail u.ä. funktionieren.
# /etc/smtpd/smtpd.conf -- smtpd(8) configuration file # # Date: 2023-10-08 # listen on localhost (ipv4 and ipv6) listen on localhost hostname = host.domain.de # tables table aliases file:/etc/smtpd/aliases table accounts { local_user = remote_user@t-online.de:remote_password } # actions action "local" mda "/usr/bin/fdm -m -u %{user.username} -a stdin fetch" alias <aliases> action "remote" relay host smtp+tls://local_user@securesmtp.t-online.de:587 auth <accounts> mail-from remote_user@t-online.de # matches match for local action "local" match from local for any action "remote"
An der ursprünglichen Konfiguration sind jetz folgende Direktiven geändert bzw hinzugefügt worden:
Auch hier ist es sinnvoll, zunächst einen Test der Konfiguration vorzunehmen:
# smtpd -nv
Mit schlappen 7 (in Worten: sieben) Zeilen lässt sich OpenSMTPDals lokal und remote - über eine TLS-vershlüsselte Verbindung - abliefernder SMTP Daemon konfigurieren, so what?
Zurück zur Main-Site |