Plesk Server von Haus aus ohne E-Mail Autodiscover Setup
Plesk Server bis und mit Version 17.8 (Plesk Onyx) kommen leider ohne natives E-Mail Autodiscover Setup daher; gem. mir vorliegenden informationen wird auch mit Plesk Obsidian (Relase im Oktober 2019) eine E-Mail-AutoKonfiguration nicht ganz ohne manuelles zutun funktionieren, jedoch aber wird sich dort das Autodiscover Setup deutlich vereinfachen, resp. lediglich auf das SSL-zertifizieren Ihrer Domain reduzieren.
Viele Mail-Clients, allen voran Outlook, machen aber die Einrichtung einer Mailbox zum Spiessrutenlauf, wenn für die entsprechende Domain kein zuverlässiges E-Mail Autodiscover Setup bereitgestellt wurde. - Im folgenden möchte ich aufzeigen, wie sich Autodiscover für Outlook und andere Mail Clients auf einem Plesk Hosting mit nur wenigen Handgriffen bereitstellen lässt. Hierbei besteht die Möglichkeit, Autodiscover für einen spezifischen Domain Account oder gleich serverweit bereitzustellen.
Autodiscover für einen Domain Account auf einem Plesk Server v.17.8 bereitstellen
Um ein warnungsfreies (SSL-Zertifikat), funktionierendes Autodiscover Setup für einen Domain Account, welche auf einem Plesk Server bis und mit Version 17.8 (Plesk Onyx) verwaltet wird, bereitzustellen, sind folgende Vorbereitungen empfohlen, sowie nachfolgende Autodiscover Setup Konfiguration zu erstellen:
01)
Melden Sie sich auf Ihrem Plesk Control Panel als Plesk Administrator an.
02)
Gehen Sie nach Extensions und prüfen sie, ob die kostenlose Plesk Extension "Let's Encrypt" bereits installiert ist; holen Sie diese Installation falls nötig nach.
03)
Wählen Sie auf Plesk "Tools & Settings" und navigieren Sie zu "SSL/TLS Certificates". Erstellen Sie für Ihren Plesk Server ein kostenloses "Let's Encrypt SSL-Zertifikat", lautend auf den Hostname Ihres Plesk Servers. Wählen Sie dieses Zertifikat anschliessend für "Certificate for securing Plesk" und für "Certificate for securing mail" aus.
04)
Wählen Sie in Ihrem Plesk Control Panel den Menupunkt "Domains" und navigieren Sie zum entsprechenden Domain Account. Wählen Sie die Plesk Managementoption "Let's Encrypt" und beziehen Sie hier für Ihren Domain Account ein kostenloses "Let's Encrypt" SSL-Zertifikat vom Typ "Wildcard".
05)
Verbinden Sie sich per FTP, SFTP oder SSH auf das Dateisystem von Ihrem Domain Account und gehen Sie in das Webroot Directory für diesen vHost (meist "/httpdocs"). Ich empfehle Ihnen für die Anmeldung per FTP etc. den Systembenutzer (FTP User) vom zutreffenden Domain Account zu verwenden (Stichwort Dateiberechtigungen). Erstellen Sie hierin ein weiteres Verzeichnis, lautend auf "autodiscover". In diese Verzeichnis "/autodiscover" erstellen Sie eine Datei "autodiscover.xml" mit folgendem Inhalt:
- <?php
- $matches = null;
- preg_match('/\<EMailAddress\>(.*?)\<\/EMailAddress\>/', file_get_contents('php://input'), $matches);
- $loginname = isset($matches[1]) ? $matches[1] : '';
- echo '<?xml version="1.0" encoding="utf-8" ?>'; ?>
- <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
- <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
- <Account>
- <AccountType>email</AccountType>
- <Action>settings</Action>
- <Protocol>
- <Type>IMAP</Type>
- <Server>HOSTNAME</Server>
- <Port>993</Port>
- <DomainRequired>off</DomainRequired>
- <LoginName><?php echo $loginname; ?></LoginName>
- <SPA>off</SPA>
- <SSL>on</SSL>
- <AuthRequired>on</AuthRequired>
- </Protocol>
- <Protocol>
- <Type>SMTP</Type>
- <Server>HOSTNAME</Server>
- <Port>465</Port>
- <DomainRequired>off</DomainRequired>
- <LoginName><?php echo $loginname; ?></LoginName>
- <SPA>off</SPA>
- <SSL>on</SSL>
- <AuthRequired>on</AuthRequired>
- <UsePOPAuth>on</UsePOPAuth>
- <FolderSync xmlns="FolderHierarchy:">
- <SyncKey>2</SyncKey>
- </FolderSync>
- </Protocol>
- </Account>
- </Response>
- </Autodiscover>
Ersetzen Sie "HOSTNAME" im obigen Code zweimal mit dem tatsächlichen Hostname Ihres Plesk Servers, welchen Sie zuvor unter Punkt 03) per kostenloses "Let's Encrypt" SSL-Zertifikat zertifiziert haben. Speichern Sie anschliessend diese Datei.
06)
Erstellen Sie nun im gleichen Verzeichnis "/autodiscover" ein Datei, lautend auf ".htaccess" und notieren Sie darin folgenden Inhalt:
- <IfModule mod_fcgid.c>
- <Files ~ (\.xml$)>
- SetHandler fcgid-script
- FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .xml
- Options +ExecCGI
- </Files>
- </IfModule>
Speichern Sie diese Datei abschliessend.
07)
Starten Sie den Webserver unter einem entsprechend autorisierten Benuter neu:
- # systemctl restart apache2.service
Ab jetzt sollte Autodiscover für den entsprechenden Domain Acoount korrekt funktionieren. Sie können dies zb. für Outlook prüfen, indem Sie unter Windows das Trayicon "Outlook" mit "Ctrl + Rechte Maustaste" auswählen und hier aus dem angebotenen Kontextmenu die Option "E-Mail-AutoKonfiguration testen..." wählen. Notieren Sie in diesem Utility Ihre Mailadresse im Feld "E-Mail-Adresse" und klicken Sie anschliessend auf "Test". Nach Abschluss einer solchen Prüfung können sie im Tab "Ergebnisse" die Resultate einsehen und auf Richtigkeit prüfen.
Autodiscover auf einem Plesk Server v.17.8 serverweit bereitstellen
Grundsätzlich kann die oben für einen spezifischen Domain Account beschriebene Bereitstellung für eine funktionierende E-Mail-Autokonfiguration (Autodiscover) auch serverweit bereitgestellt werden. Hierbei stellt sich lediglich die unschöne Problematik, dass beim späteren Einrichten einer Mailbox per Autodiscover jeweils ein Zertifikatswarnung angezeigt werden wird, welche es jeweils zu prüfen und anschliessend zu bestätigen gilt. - Dieser Umstand resultiert aus der Tatsache, dass Outlook die Prüfung unter der Domain selbst (autodiscover.IhreDomain.tld) vornimmt, dann aber ein Ziel erreichen wird, welches nur für den Hostname Ihres Plesk Servers zertifiziert wurde.
Wenn Sie dennoch das E-Mail Autodiscover Setup für einen Plesk Server v.17.8 oder älter bereitstellen möchten, verfahren Sie wie folgt:
01)
Melden Sie sich auf Ihrem Plesk Control Panel als Plesk Administrator an.
02)
Gehen Sie nach Extensions und prüfen sie, ob die kostenlose Plesk Extension "Let's Encrypt" bereits installiert ist; holen Sie diese Installation falls nötig nach.
03)
Wählen Sie auf Plesk "Tools & Settings" und navigieren Sie zu "SSL/TLS Certificates". Erstellen Sie für Ihren Plesk Server ein kostenloses "Let's Encrypt SSL-Zertifikat", lautend auf den Hostname Ihres Plesk Servers. Wählen Sie dieses Zertifikat anschliessend für "Certificate for securing Plesk" und für "Certificate for securing mail" aus.
04)
Verbinden Sie sich als entsprechend privilegierter Benutzer per SFTP oder SSH auf das Dateisystem von Ihrem Plesk Server und legen sie die datei "/var/www/vhosts/default/htdocs/autodiscover/autodiscover.xml" mit folgendem Inhalt an:
- <?php
- $matches = null;
- preg_match('/\<EMailAddress\>(.*?)\<\/EMailAddress\>/', file_get_contents('php://input'), $matches);
- $loginname = isset($matches[1]) ? $matches[1] : '';
- echo '<?xml version="1.0" encoding="utf-8" ?>'; ?>
- <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
- <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
- <Account>
- <AccountType>email</AccountType>
- <Action>settings</Action>
- <Protocol>
- <Type>IMAP</Type>
- <Server>HOSTNAME</Server>
- <Port>993</Port>
- <DomainRequired>off</DomainRequired>
- <LoginName><?php echo $loginname; ?></LoginName>
- <SPA>off</SPA>
- <SSL>on</SSL>
- <AuthRequired>on</AuthRequired>
- </Protocol>
- <Protocol>
- <Type>SMTP</Type>
- <Server>HOSTNAME</Server>
- <Port>465</Port>
- <DomainRequired>off</DomainRequired>
- <LoginName><?php echo $loginname; ?></LoginName>
- <SPA>off</SPA>
- <SSL>on</SSL>
- <AuthRequired>on</AuthRequired>
- <UsePOPAuth>on</UsePOPAuth>
- <FolderSync xmlns="FolderHierarchy:">
- <SyncKey>2</SyncKey>
- </FolderSync>
- </Protocol>
- </Account>
- </Response>
- </Autodiscover>
Ersetzen Sie "HOSTNAME"" im obigen Code zweimal mit dem tatsächlichen Hostname Ihres Plesk Servers, welchen Sie zuvor unter Punkt 03) per kostenloses "Let's Encrypt" SSL-Zertifikat zertifiziert haben. Speichern Sie anschliessend diese Datei.
05)
Erstellen Sie als nächstes die Datei "/etc/apache2/plesk.conf.d/ip_default/autodiscover.conf" und notieren sie in derselben folgenden Inhalt:
- <Directory /var/www/vhosts/default/htdocs>
- <IfModule mod_fcgid.c>
- <Files ~ (\.xml$)>
- SetHandler fcgid-script
- FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .xml
- Options +ExecCGI
- </Files>
- </IfModule>
- </Directory>
Speichern Sie anschliessend diese Datei.
06)
Starten Sie den Webserver unter einem entsprechend autorisierten Benuter neu:
- # systemctl restart apache2.service
Ab jetzt sollte Autodiscover für den entsprechenden Domain Acoount korrekt funktionieren. Sie können dies zb. für Outlook prüfen, indem Sie unter Windows das Trayicon "Outlook" mit "Ctrl + Rechte Maustaste" auswählen und hier aus dem angebotenen Kontextmenu die Option "E-Mail-AutoKonfiguration testen..." wählen. Notieren Sie in diesem Utility Ihre Mailadresse im Feld "E-Mail-Adresse" und klicken Sie anschliessend auf "Test". Nach Abschluss einer solchen Prüfung können sie im Tab "Ergebnisse" die Resultate einsehen und auf Richtigkeit prüfen.