Mailversand/-empfang unter Linux mit msmtp und mutt über Microsoft Exchange EWS

Insbesondere in Microsoft-lastigen Umgebungen kann es manchmal gefragt sein, Mails über Exchange zu versenden bzw. empfangen. Einige grafische Mail-Clients, wie beispielsweise Evolution bieten hierfür eine entsprechende Unterstützung - für Server ohne GUI ist diese Lösung natürlich nicht die richtige Wahl.

Mit DavMail gibt es eine Java-basierte plattformunabhängige Software, die als Exchange-Gateway für die folgenden Protokolle fungiert:

  • POP
  • IMAP
  • SMTP
  • CalDAV
  • CardDAV

Die Software lauscht lokal auf entsprechenden Netzwerkports und leitet die Anfragen über EWS (Exchange Web Services) an den Exchange-Server weiter.

DavMail existiert in verschiedenen Versionen:

  • JEE Web-Anwendung (.war)
  • Bundle mit grafischer Oberfläche (für Debian-basierte Distributionen)
  • Java Standalone-Version
Note

Seit Version 4.6.1 entfällt das manuelle Bereitstellen der Java-Anwendung und des Init-Skripts! Im Download-Bereich von Sourceforge gibt es entsprechende RPM-Pakete.

Für Server empfiehlt sich die Java Standalone-Version, da sie ohne grafische Oberfläche genutzt werden kann. Das Archiv ist jeweils für 32- und 64-bit Systeme verfügbar. Der erste Schritt besteht darin, das Archiv herunterzuladen und zu entpacken.

32-bit:

1# wget http://sourceforge.net/projects/davmail/files/davmail/4.5.1/davmail-linux-x86-4.5.1-2303.tgz/download -O davmail-linux-x86-4.5.1-2303.tgz
2# tar xfz davmail-linux-x86-4.5.1-2303.tgz
3# cd davmail-linux-x86_64-4.5.1-2303

64-bit:

1# wget http://sourceforge.net/projects/davmail/files/davmail/4.5.1/davmail-linux-x86_64-4.5.1-2303.tgz/download -O davmail-linux-x86_64-4.5.1-2303.tgz
2# tar xfz davmail-linux-x86-4.5.1-2303.tgz
3# cd davmail-linux-x86_64-4.5.1-2303

Hinweis: Vor dem Download überprüfen, ob es eine neue Version der Software gibt: [klick mich!]

Die Software benötigt eine Konfigurationsdatei, in der die neben der OWA (Outlook Web Access) bzw. EWS URL weitere Anpassungen vorgenommen werden (SSL-Konfiguration, Logging-Verhalten, etc.). Diese Datei heißt davmail.properties - auf der Webseite des Projekts gibt es eine Beispiel-Konfiguration: [klick mich!]

Die wichtigste Zeile beinhaltet die EWS-/OWA-URL:

1davmail.url=https://owa.domain.com

Die anderen Einstellungen werden in den Kommentaren ausführlich beschrieben.

Gestartet wird DavMail mit folgendem Aufruf:

1# ./davmail.sh davmail.properties

Schöner ist es jedoch, wenn die Software automatisch beim Boot gestartet wird. Für alle gängigen Init-/Service-Steuerungen (SysV-Init, upstart, systemd), habe ich entsprechende Konfigurationen auf GitHub veröffentlicht: [klick mich!]

Diese lassen sich einfach importieren und verwenden:

1sysvinit # wget https://raw.githubusercontent.com/stdevel/davmail-initscript/master/davmail-sysvinit -O /etc/init.d/davmail
2sysvinit # chmod +x /etc/init.d/davmail
3sysvinit # chkconfig --add davmail
4sysvinit # chkconfig davmail on
5sysvinit # service davmail start
1upstart # wget https://raw.githubusercontent.com/stdevel/davmail-initscript/master/davmail-upstart -O /etc/init/davmail
2upstart # initctl start davmail
1systemd # wget https://raw.githubusercontent.com/stdevel/davmail-initscript/master/davmail-systemd -O /usr/lib/systemd/system/davmail
2systemd # systemctl enable davmail.service
3systemd # systemctl start davmail.service

Wenn DavMail in einem anderen Verzeichnis als /opt/davmail installiert wurde, müssen die Konfigurationsdateien angepasst werden.

Für den Versand der Mails wird in diesem Beispiel msmtp verwendet. Hierbei handelt es sich um ein einfaches Tool, das Mails über SMTP an einen konfigurierten Server weiterleitet.

Für msmtp wird eine Konfigurationsdatei erstellt - beispielsweise für den aktuellen Benutzer:

 1$ ~/.msmtprc
 2defaults
 3logfile ~/.msmtp.log
 4account default
 5host localhost
 6port 1025
 7protocol smtp
 8from max.mustermann@domain.com
 9auth login
10user domainmax.mustermann
11password MyPassword

Die Zeilen from, user und password müssen gemäß Exchange-Konfiguration angepasst werden. Die Konfiguration kann auch systemweit vorgenommen werden, dazu wird o.g. Inhalt in die Datei /etc/msmtprc geschrieben. Der Pfad des Protokolls (logfile) muss dann natürlich auch angepasst werden.

Der Versand lässt sich wie folgt testen:

1$ echo -e "Subject: Test\r\n\r\nThis is a test mail" | msmtp bernd.beispiel@domain.com

Treten Probleme auf, kann msmtp mit dem Parameter -v ausgeführt werden, um ein besseres Debugging zu ermöglichen.

Zum Abruf der Mails über mutt wird die Mutt-Konfiguration (~/.muttrc) angepasst:

 1set spoolfile="imap://max.mustermann:MyPassword@127.0.0.1:1143/INBOX"
 2set folder="imap://max.mustermann:MyPassword@127.0.0.1:1143"
 3set from="max.mustermann@domain.com"
 4set realname="max.mustermann"
 5set imap_user="max.mustermann@domain.com"
 6
 7set imap_pass="MyPassword"
 8set header_cache=~/.mutt/cache/headers
 9set message_cachedir=~/.mutt/cache/bodies
10
11set sendmail="/usr/bin/msmtp"
12my_hdr From: "max.mustermann"
13
14bind index G imap-fetch-mail

Neben der IMAP-/SMTP-Konfiguration wird auch ein globaler Hotkey G für das Abrufen der E-Mails definiert. Die hier definierten Benutzernamen und Passwörter müssen natürlich angepasst werden.

Anschließend lassen sich E-Mails per mutt über EWS empfangen.

Übersetzungen: