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
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.