Categories
Technisches

E-Mail Autoconfig & AutoDiscover

Wenn man E-Mail-Dienste bereitstellt, dann sollte man es den Nutzern einfach machen die E-Mail-Programme korrekt zu konfigurieren. Und das funktioniert so:

Autoconfig und Autodiscover (AutoErmittlungsdienst)

Es gibt mehrere Verfahren wie ein E-Mail-Programm versuchen kann sich automatisch zu konfigurieren. Populär sind Autoconfig (Thunderbird, weitere*) und Autodiscover (Microsoft, Samsung-Android, auf deutschsprachigen MS-Seiten auch „AutoErmittlungsdienst“ genannt). Beiden gemeinsam ist, dass anhand der E-Mail-Adresse (diese muss der Benutzer eingeben) sämtliche Daten ermittelt werden können, die zum Empfangen und Versenden von E-Mails gebraucht werden.

Bei Autodiscover muss nur noch das Passwort eingegeben werden. Bei Autoconfig auch noch der Name.

Autoconfig

https://developer.mozilla.org/de/docs/Mozilla/Thunderbird/Autoconfiguration

Thunderbird sucht zuerst in der Mozilla-eigenen ISP-Datenbank. Wenn das nicht erfolgreich ist, dann wird die URL

GET http://autoconfig.maildomain/mail/config-v1.1.xml?emailaddress=localpart@maildomain

aufgerufen. Zurückgegeben werden muss eine XML-Datei mit passendem Content-Type. Das Dateiformat ist in https://developer.mozilla.org/en-US/docs/Mozilla/Thunderbird/Autoconfiguration/FileFormat/HowTo erklärt. Gibt es unter dieser URL keine Resource, dann versucht Thunderbird anhand des Namen des MX die Namen der Mailserver herauszufinden. Bei „mail0001.hoster“ als MX wird „smtp.hoster“, „imap.hoster“ und „pop3.hoster“ als Servernamen probiert.

Autodiscover (AutoErmittlungsdienst)

https://technet.microsoft.com/en-us/library/cc511507.aspx

Outlook versucht zuerst die Einstellungen direkt aus dem AD zu beziehen. Danach versucht es mittels des Autodiscover die Einstellungen herauszufinden:

POST https://maildomain/autodiscover/autodiscover.xml
POST https://autodiscover.maildomain/autodiscover/autodiscover.xml

Beides wird als POST über https aufgerufen. Ist das nicht erfolgreich, weil man z.B. für die Maildomain kein https zur Verfügung hat, so wird weiter probiert:

GET http://autodiscover.maildomain/autodiscover/autodiscover.xml (HTTP/302 auf dire „richtige“ URL)
DNS: _autodiscover._tcp.maildomain IN SRV Servername

Bei diesen letzten beiden Möglichkeiten muss URL dann die URL die XML-Datei sein. Außerdem erscheint hier eine Warnung (wegen Mangel an Verschlüsselung). Verwendet man den http-Request, so darf dieser nicht direkt die XML-Datei zurückgeben, sondern muss einen Redirect auf eine https-Ressource durchführen. Gleiches gilt für den Hostnamen, der durch die DNS-SRV-Abfrage zurückgeliefert wird: auf ihm wird dann der POST-Request auf /autodiscover/autodiscover.xml per https abgesetzt.

Man muss bei diesen Microsoft-Sachen immer aufpassen, dass die URLs hier nicht case-sensitive sind. Manche Clients fragen nach „AutoDiscover“, andere nach „autodiscover“…

Findet Outlook hier auch keine Einstellungen, dann probiert es typische Hostnamen und Einstellungen durch – allerdings nicht wie Thunderbird unter beachtung des MX-Eintrags, sondern direkt bei der Maildomain.

Hinweis:

Während man die verschlüsselte Datenübertragung bei IMAP und POP3 entsprechend der Dokumentation mit

<SSL>on</SSL>

aktivieren kann muss man bei SMTP

<Encryption>TLS</Encryption>

eintragen.

Weiterlesen

Die schönste Quelle gibt es leider nicht mehr online, aber hier 2 Spiegel:

http://www.ullright.org/ullWiki/show/providing-email-client-autoconfiguration-information-from-moens-ch

http://web.archive.org/web/20150102224744/http://moens.ch/2012/05/31/providing-email-client-autoconfiguration-information/

Andere Methoden und andere Mailprogramme

Apple

Wie funktioniert das bei den Apple-Produkten? Bei einem Exchange-Account versuchen es Apple-Produkte wohl auch mit AutoDiscover, bei einem „normalen“ E-Mail-Account geht das aber anscheinend nicht. Unter http://dokuwiki.nausch.org/doku.php/centos:mail_c6:autoconfig_3 ist eine Krücke beschrieben – aber so richtig schön ist das nicht.

Evolution und KMail

Evolution und kMail können angeblich auch Autoconfig. Ich kann das zumindest für Evolution nicht nachvollziehen. Mein Evolution (v3.12.10) schaut definitiv nur in der eignenen Datenbank bei api.gnome.org nach, das kann man mit Wireshark sehen.

RFC6186

Es gibt da noch den RFC 6186, wo ein weiteres Protokoll definiert ist. Ich weiß nicht, welche Programme das nutzen….