·Server / Hosting

Autodiscover und Autoconfig für E-Mails mit Plesk – Outlook / Thunderbird automatisch konfigurieren

Outlook (Autodiscover) und Thunderbird (Autoconfig) automatisch konfigurieren: DNS (CNAME/SRV), XML-Konfigurationen und Tests – Schritt für Schritt auf Plesk.

post plesk mail autodiscover autoconfig outlook thunderbird imap smtp dns srv

E-Mails mit Autodiscover und Autoconfig für Plesk

Eine komfortable und automatische Konfiguration eines E-Mail-Postfachs in Outlook, Thunderbird & Co. ist eine feine Sache, die zumeist nur bei großen Providern verfügbar ist – lässt sich aber auch mit dem eigenen Plesk-Server einfach realisieren. Kein mühsames Eingeben der IMAP- und SMTP-Server mehr. Wir zeigen, wie es geht!

Diese Anleitung sieht vor, dass der Hostname als SSL-geschützter Servername verwendet wird, welcher in Outlook, Thunderbird & Co. als Posteingangsserver (IMAP/POP3) sowie als SMTP-Postausgangsserver genutzt wird.

Autoconfig und Autodiscover (Auto-Ermittlungsdienst)

Es gibt mehrere Verfahren, wie ein E-Mail-Programm versuchen kann, sich automatisch zu konfigurieren. Die beliebtesten sind Autoconfig (genutzt bei Thunderbird) und Autodiscover (Microsoft Outlook und einige Android-Geräte). Autodiscover ist meist schneller, da neben der E-Mail-Adresse nur noch das Kennwort eingegeben werden muss. Autoconfig erfordert neben dem Passwort auch einen Kontonamen.

Autoconfig

Thunderbird sucht bei der Neueinrichtung eines Mailkontos als erstes in der Mozilla-eigenen ISP-Datenbank, ob unter dem FQDN der einzurichtenden E-Mail-Adresse entsprechende Autokonfigurationen vorhanden sind. Ist dies nicht erfolgreich, wird als nächstes die URL

GET http://autoconfig.domain.de/mail/[email protected]

aufgerufen. Als Rückgabewert muss eine XML-Datei mit passendem Content-Type erfolgen.²

Ist auch unter dieser URL keine Konfiguration vorhanden, versucht Thunderbird anhand der MX-Einträge des Mailservers die Einstellungen herauszufinden. In den meisten Fällen wird smtp.deine-coole-domain.de für den Postausgangsserver und pop (oder) imap.deine-coole-domain.de als Servername probiert.

Autodiscover

Autodiscover stammt von Microsoft und wird für das wahrscheinlich beliebteste E-Mail-Programm Outlook genutzt, um die Einrichtung des Mailkontos zu automatisieren. Nachzulesen hier.

Zuerst versucht Outlook, die Einstellungen aus dem Active Directory (AD) zu beziehen. Danach versucht Outlook – ähnlich wie bei Autoconfig – verschiedene Aufrufe:

POST https://domain.de/autodiscover/autodiscover.xml
POST https://autodiscover.domain.de/autodiscover/autodiscover.xml

Beide Aufrufe erfolgen als POST über HTTPS. Falls dies nicht erfolgreich ist (z. B. weil kein HTTPS verfügbar ist), wird per GET weiter versucht:

GET http://autodiscover.domain.de/autodiscover/autodiscover.xml

Über einen SRV-Eintrag kann nun auf eine HTTPS-geschützte Adresse verwiesen werden:

_autodiscover._tcp.deine-domain.de IN SRV dein-server.de

Zu beachten ist, dass die URLs nicht case-sensitive sind. Einige Clients (gerade ältere Versionen) fragen nach Autodiscover, autodiscover oder AutoDiscover.

Schlägt auch diese Variante fehl, versucht Outlook es – wie Thunderbird – mit imap.deine-domain.de und smtp.deine-domain.de.

Doch genug der vielen Worte, kommen wir zur Anleitung!


Anforderungen

  1. Plesk muss der primäre Name Server sein (der Plesk DNS-Server fungiert als primärer Name Server der DNS-Zone xyz).
  2. Die gewünschte (Sub)-Domain für den Mailserver muss auf den Plesk-Server routen und erreichbar sein.
  3. Der Mailserver muss per https:// aufrufbar sein und über ein gültiges SSL-Zertifikat verfügen.
  4. Geduld und viel Kaffee =)

In unserem Fallbeispiel verwenden wir als E-Mail-Server den Hostnamen: mytestmailserver.com. Später möchten wir ein Postfach [email protected] mit der automatischen Konfiguration in unser Mailprogramm einpflegen. Als Grundlage gehen wir davon aus, dass dieser Hostname über HTTPS erreichbar ist und ein gültiges Zertifikat installiert ist.

Schritt 1: DNS-Einstellungen

Navigiere als eingeloggter Administrator zu „Tools & Einstellungen“ und wähle unter dem Tab „Allgemeine Einstellungen“ das DNS-Template aus.

Hier müssen nun drei neue DNS-Einträge hinzugefügt werden. Zuerst erstellen wir zwei CNAME-Einträge, unter deren kanonischem Namen wir unsere Autoconfig- und Autodiscover-Konfigurationen hinterlegen möchten:

Autoconfig.<domain> CNAME mytestmailserver.com
Autodiscover.<domain> CNAME mytestmailserver.com

Ebenso benötigen wir den im Vorwort genannten SRV-Eintrag, um von der unsicheren HTTP-Version auf den HTTPS-Hostnamen zu zeigen:

SRV _autodiscover._tcp.<domain> 0 10 443 mytestmailserver.com
Plesk DNS-Template: CNAME für Autoconfig/Autodiscover sowie SRV-Eintrag für _autodiscover._tcp
Hinweis: Das Bild zeigt bei der Priorität einen falschen Wert. Dieser kann individuell geändert werden – wir nutzen als Priorität 0.

Schritt 2: Konfigurationsdateien

Erstellt einen Unterordner /mail unter der genutzten Domain, welcher als Mailserver fungiert: https://mytestmailserver.com/mail

In diesem Ordner erstellen wir folgende Dateien.

Erstellt die Datei:

autodiscover.xml

Diese enthält die Autodiscover-Einstellungen, welche vom Postfachbesitzer normalerweise händisch eingetragen werden müssten (z. B. Posteingangs- und Postausgangsserver, Verschlüsselungstyp und Ports).

<?php
	$raw = file_get_contents('php://input');
	$matches = array();
	preg_match('/<EMailAddress>(.*)<\/EMailAddress>/', $raw, $matches);
	header('Content-Type: application/xml');
?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
	<Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
		<User>
			<DisplayName>inoWRX</DisplayName>
		</User>
		<Account>
			<AccountType>email</AccountType>
			<Action>settings</Action>
			<Protocol>
				<Type>IMAP</Type>
    			<Server>mytestmailserver.com</Server>
				<Port>993</Port>
				<DomainRequired>off</DomainRequired>
				<SPA>off</SPA>
				<SSL>on</SSL>
				<AuthRequired>on</AuthRequired>
				<LoginName><?php echo $matches[1]; ?></LoginName>
			</Protocol>
			<Protocol>
				<Type>POP3</Type>
				<Server>mytestmailserver.com</Server>
				<Port>995</Port>
				<DomainRequired>off</DomainRequired>
				<SPA>off</SPA>
				<SSL>on</SSL>
				<AuthRequired>on</AuthRequired>
				<LoginName><?php echo $matches[1]; ?></LoginName>
			</Protocol>
			<Protocol>
				<Type>SMTP</Type>
				<Server>mytestmailserver.com</Server>
				<Port>465</Port>
				<DomainRequired>off</DomainRequired>
				<SPA>off</SPA>
				<SSL>on</SSL>
				<AuthRequired>on</AuthRequired>
				<LoginName><?php echo $matches[1]; ?></LoginName>
			</Protocol>
		</Account>
	</Response>
</Autodiscover>

Damit ältere Versionen, die beispielsweise nach Autodiscover.xml, AutoDiscover.xml oder autodiscover.xml suchen, ebenfalls funktionieren, erzeugen wir zwei symbolische Links:

$ ln -s autodiscover.xml AutoDiscover.xml
$ ln -s autodiscover.xml Autodiscover.xml

Nun erstellen wir die Konfigurationsdatei für Thunderbird, Android & Co.

Erstellt eine Datei mit Namen:

config-v1.1.xml

mit folgendem Inhalt und passt die Einstellungen entsprechend an euer System an:

<?php header('Content-Type: application/xml'); ?>
<clientConfig version="1.1">
  <emailProvider id="inowrx.de">
    <domain>inowrx.de</domain>
    <displayName>inoWRX</displayName>
    <displayShortName>inoWRX</displayShortName>

    <incomingServer type="imap">
      <hostname>mytestmailserver.com</hostname>
      <port>993</port>
      <socketType>SSL</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <incomingServer type="imap">
      <hostname>mytestmailserver.com</hostname>
      <port>143</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <incomingServer type="pop3">
      <hostname>mytestmailserver.com</hostname>
      <port>995</port>
      <socketType>SSL</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <incomingServer type="pop3">
      <hostname></hostname>
      <port>110</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <outgoingServer type="smtp">
      <hostname>mytestmailserver.com</hostname>
      <port>465</port>
      <socketType>SSL</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>

    <outgoingServer type="smtp">
      <hostname>mytestmailserver.com</hostname>
      <port>587</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>

    <outgoingServer type="smtp">
      <hostname>mytestmailserver.com</hostname>
      <port>25</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>

    <outgoingServer type="smtp">
      <hostname>mytestmailserver.com</hostname>
      <port>2525</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>

    <documentation url="https://www.serverkraut.de/support/">
      <descr lang="de">Dokumentation</descr>
      <descr lang="en">Documentation</descr>
    </documentation>

  </emailProvider>
</clientConfig>

Nun folgen noch zwei ungetestete Konfigurationen für Apple iPhone, um die Konfiguration dort zu erleichtern (dies ist von uns jedoch ungetestet, da wir keine Apple-Geräte verwenden). Erreichen kann man diese iPhone-Konfigurationsseite unter autoconfig.<domain>/ios bzw. unter autoconfig.<domain>/iphone.xml.

In unserem Beispiel sieht unsere Konfigurationsseite für Apple-Geräte folgendermaßen aus:

Beispiel: Autoconfig-Seite für Apple-Geräte (iPhone/Mac) zur Erstellung einer Mail-Konfiguration
Der Nutzer öffnet die Seite in Safari, füllt das Formular aus und lädt anschließend die Konfigurationsdatei für Apple Mail herunter.

Erzeugt die Datei:

iphone.mobileconfig

mit diesem Inhalt:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>HasRemovalPasscode</key>
	<false/>
	<key>PayloadContent</key>
	<array>
		<dict>
			<key>EmailAccountDescription</key>
			<string>MAILADDR</string>
			<key>EmailAccountName</key>
			<string>NAME</string>
			<key>EmailAccountType</key>
			<string>EmailTypeIMAP</string>
			<key>EmailAddress</key>
			<string>MAILADDR</string>
			<key>IncomingMailServerAuthentication</key>
			<string>EmailAuthPassword</string>
			<key>IncomingMailServerHostName</key>
			<string>mytestmailserver.com</string>
			<key>IncomingMailServerPortNumber</key>
			<integer>993</integer>
			<key>IncomingMailServerUseSSL</key>
			<true/>
			<key>IncomingMailServerUsername</key>
			<string>MAILADDR</string>
			<key>OutgoingMailServerAuthentication</key>
			<string>EmailAuthPassword</string>
			<key>OutgoingMailServerHostName</key>
			<string>mytestmailserver.com</string>
			<key>OutgoingMailServerPortNumber</key>
			<integer>465</integer>
			<key>OutgoingMailServerUseSSL</key>
			<true/>
			<key>OutgoingMailServerUsername</key>
			<string>MAILADDR</string>
			<key>OutgoingPasswordSameAsIncomingPassword</key>
			<true/>
			<key>PayloadDescription</key>
			<string>Configuration automatique de votre compte de messagerie</string>
			<key>PayloadDisplayName</key>
			<string>MAILADDR</string>
			<key>PayloadIdentifier</key>
			<string>inowrx.autodiscover.com.apple.mail.managed.1234ABCD-ABCD-1234-87FE-ABCDEF123452</string>
			<key>PayloadType</key>
			<string>com.apple.mail.managed</string>
			<key>PayloadUUID</key>
			<string>1234ABCD-ABCD-1234-87FE-ABCDEF123452</string>
			<key>PayloadVersion</key>
			<real>1</real>
			<key>SMIMEEnablePerMessageSwitch</key>
			<false/>
			<key>SMIMEEnabled</key>
			<false/>
			<key>disableMailRecentsSyncing</key>
			<false/>
		</dict>
	</array>
	<key>PayloadDescription</key>
	<string>Configure Email Settings</string>
	<key>PayloadDisplayName</key>
	<string>MAILADDR</string>
	<key>PayloadIdentifier</key>
	<string>inowrx.autodiscover</string>
	<key>PayloadOrganization</key>
	<string>inoWRX</string>
	<key>PayloadRemovalDisallowed</key>
	<false/>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>ABCD1234-AB12-CD43-D005-123456ABCDE5</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>

Und eine Datei namens:

iphone.xml

mit Inhalt:

<?php if ($_REQUEST['email'] != "" && $_REQUEST['nom'] != "" && filter_var($_REQUEST['email'], FILTER_VALIDATE_EMAIL)): ?>
  <?php
  header('Content-Type: text/plain');
  header("Content-Disposition: attachment; filename=\"".$_REQUEST['email'].".mobileconfig\"");
  $conf = file_get_contents('iphone.mobileconfig');
  $conf = str_replace('MAILADDR', $_REQUEST['email'], $conf);
  $conf = str_replace('NAME', $_REQUEST['name'], $conf);
  print $conf;
  ?>
<?php else: ?>
  <html>
  <head>
    <title>Auto-Konfiguration fuer iPhone</title>
    <meta name="viewport" content="width=device-width; initial-scale=1; user-scalable=no" />
  </head>
  <body style="font: 100% Verdana;">
    <form method="post" action="iphone.xml">
      <p style="text-align: center">
        <br/><br/>
        Geben Sie Ihren Vor- und Nachnamen ein (der als Absender von E-Mails angezeigt wird)<br/>
        sowie Ihre E-Mail-Adresse an, um eine Konfiguration für Ihr iOS-Gerät zu erhalten<br/>
        <br/><br/>
        Vor- und Nachname: <input type="text" name="name" style="height: 30px; width: 250px;"/><br/>
        <br/><br/>
        E-Mail-Adresse: <input type="text" name="email" style="height: 30px; width: 250px;"/><br/>
        <br/><br/>
        <input type="submit" value="Download"/><br/><br/>
        Geben Sie eine gültige E-Mail-Adresse an und klicken Sie auf Download, um die Konfiguration zu beenden!
      </p>
    </form>
  </body>
</html>
<?php endif ?>

Zu guter Letzt noch die .htaccess-Datei:

AddHandler php-script .php .xml
RewriteEngine on
RewriteCond %{REQUEST_URI} !iphone.xml
RewriteCond %{REQUEST_URI} ios
RewriteRule .* /ios/iphone.xml [R]

Wenn die CNAME-Einträge, der SRV-Eintrag sowie die Konfigurationsdateien korrekt angelegt wurden, steht einem Test nichts mehr im Wege!

Schritt 3: Test & Einrichtung

Erstellt ein neues E-Mail-Konto in Outlook:

Outlook: Neues E-Mail-Konto hinzufügen (Start der Kontoeinrichtung)

Nach einigen Sekunden sollte dieses Fenster erscheinen:

Outlook: Sicherheitsabfrage/Zertifikatsdialog während Autodiscover

Klickt nun auf „Ja“. Nun kommt es ein wenig auf „Glück“ an, denn in 2 von 4 Fällen kam nach dieser Meldung die Information, dass die Kontoeinrichtung erfolgreich abgeschlossen wurde. Alternativ kommen folgende Meldungen:

Outlook: Autodiscover/Konto konnte nicht automatisch eingerichtet werden (Fehlermeldung)

Nun können wir es entweder wiederholen oder den Kontotyp manuell auswählen: Klickt auf „Kontotyp ändern“.

Outlook: Kontotyp ändern (manuelle Auswahl)

Nun teilen wir Outlook mit, welchen Kontotyp wir anlegen möchten. Wir wählen im Beispiel IMAP aus.

Outlook: Kontotyp IMAP auswählen

Nun geben wir das Kennwort ein und verbinden uns. Das Konto sollte nun erfolgreich eingerichtet sein!

Thunderbird verlangt nur die E-Mail-Adresse, einen Namen für das Konto sowie das Passwort. Standardmäßig wird immer ein IMAP-Konto angelegt.

Wir hoffen, dieses kleine Howto kann euch helfen, das Einrichten der E-Mail-Adressen eurer durch Plesk verwalteten Postfächer zu erleichtern! Gerne könnt ihr uns auch einen Kommentar hinterlassen und Feedback zu unserer Reihe der Anleitungen & HowTos geben. Auch können wir euch bei etwaigen Problemen sehr gerne via Kommentarfunktion helfen. Und wie immer freuen wir uns über neue Facebookfreunde und dem Teilen dieses Beitrages.