Debian/Ubuntu: E-Mail-Versand mit Exim4 und Smarthost
Datum: 23. Februar 2008 - Kategorie Ubuntu/Debian
Oft wird in Foren nach einem einfachen Howto gefragt, sodass man bequem E-Mails versenden kann - ohne Empfangen oder sonstiges Features. Für diesen Fall ist diese Anleitung: Es wird ein entfernter SMTP-Server als sogenannter Smarthost benutzt, d.h. alle lokal entgegengenommenen Mails werden an über diesen versendet.
Voraussetzung:
Eine eigene Domain/Subdomain, auf der man E-Mail-Weiterleitungen einrichten kann.
Ziel:
Der SMTP-Server des eigenen Providers heißt im Folgenden smtp.provider.xy, dieser erfordert SMTP-Auth. Die ausgehenden E-Mails von lokalen Benutzern sollen automatisch um die Absenderdomain meine-domain.xy ergänzt werden, die Mails an lokale User entsprechend auch.
Installation / Konfiguration:
Zuerst Exim 4 und mailx (für den Befehl "mail") installieren:
aptitude install exim4 exim4-daemon-light mailx
In der Datei /etc/exim4/passwd.client muss nun eine Zeile mit dem Benutzernamen und Passwort für den SMTP-Server des Providers eingefügt werden:
# password file used when the local exim is authenticating to a remote # host as a client. # # see exim4_passwd_client(5) for more documentation # # Example: ### target.mail.server.example:login:password smtp.provider.xy:benutzername:passwort
Jetzt wird Exim an sich noch konfiguriert - Debian bietet hier über das Paket eine bequeme Konfigurationsmöglichkeit, die uns vollkommen ausreicht:
dpkg-reconfigure exim4-config
Nun öffnet sich der Konfigurationsassistent, in dem man folgende Einstellungen wählt:
- General type of mail configuration: Versand über Sendezentrale (smarthost); keine lokale E-Mail-Zustellung
- System mail name: meine-domain.xy
- IP-addresses to listen on for incoming SMTP connections: 127.0.0.1
- Other destinations for which mail is accepted: localhost
- Sichtbarer Domänenname für lokale Benutzer: meine-domain.xy
- IP address or host name of the outgoing smarthost: smtp.provider.xy
- DNS-Anfragen minimieren (Automatische Einwahl / Dial-on-Demand)?: Im Normalfall nein (Text lesen!)
- Split configuration into small files? Nein
Test:
Jetzt ist das System in der Lage, die E-Mails zu versenden - testen kann man es über den Befehl mail:
echo "Inhalt" | mail -s Betreff empfaenger@domain.xy
Wenn es nicht gehen sollte, hilft ein Blick in die Logdatei /var/log/exim4/mainlog.
Benötigte Weiterleitungen auf der eigenen Domain einrichten:
Nun müssen die E-Mails an lokale User auch ankommen, z.B. wenn das System eine E-Mail an root sendet. Dafür muss man beim eigenen E-Mail-Provider einfach eine E-Mail-Weiterleitung für root@meine-domain.xy einrichten, entsprechend auch für die anderen lokalen Benutzer, die Mails versenden. Wenn ein Apache läuft, dann sollte man auch eine Weiterleitung für www-data anlegen, damit man evtl. auftretende Bounce-Mails erhält.