ISPConfig/Autodiscover: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „= ISPConfig-Autodiscover/Autoconfig = === Einleitung === Mit diesem Tool können Sie allen Ihren Kunden in einer Multiserver-Umgebung die automatische Erken…“
 
K Dirkwagner verschob die Seite ISPConfig/Autodiscover/Autoconfig nach ISPConfig/Autodiscover, ohne dabei eine Weiterleitung anzulegen
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= ISPConfig-Autodiscover/Autoconfig =
=== Einleitung  ===
=== Einleitung  ===
Mit diesem Tool können Sie allen Ihren Kunden in einer Multiserver-Umgebung die automatische Erkennung von E-Mail-Konten in Thunderbird und Outlook anbieten.  
Mit diesem Tool können Sie allen Ihren Kunden in einer Multiserver-Umgebung die automatische Erkennung von E-Mail-Konten in Thunderbird und Outlook anbieten.  


=== Platzhalter  ===
=== Platzhalter  ===
* my-service.com = Die Domäne, auf der Sie Ihren "Autodiscover"-Dienst ausführen  
* my-service.com = Die Domäne, auf der Sie Ihren "Autodiscover"-Dienst ausführen  
* my-mail.com = Die Domain, für die Sie Autodiscover und Autoconfig aktivieren möchten  
* my-mail.com = Die Domain, für die Sie Autodiscover und Autoconfig aktivieren möchten  
* PANEL-SERVER-IP = IP-Adresse des ISPConfig-Servers (Sie können das Tool natürlich auf jedem/jedem Server in Ihrer Umgebung installieren)  
* PANEL-SERVER-IP = IP-Adresse des ISPConfig-Servers (Sie können das Tool natürlich auf jedem/jedem Server in Ihrer Umgebung installieren)  
** Falls Sie es auf einem anderen Server als dem Panel installieren, müssen Sie stattdessen einen anderen Benutzer und eine andere Gruppe verwenden <tt>ispapps</tt>in vHost-Konfigurations- und Konsolenbefehlen.  
** Falls Sie es auf einem anderen Server als dem Panel installieren, müssen Sie stattdessen einen anderen Benutzer und eine andere Gruppe verwenden <tt>ispapps</tt>in vHost-Konfigurations- und Konsolenbefehlen.  


=== Anforderungen  ===
=== Anforderungen  ===
 
* php-soap wird für API-Requests benötigt. php7.3-Seife zum Beispiel.  
php-soap wird für API-Requests benötigt. php7.3-Seife zum Beispiel.  
* Outlook erfordert den Zugriff auf eine SSL-gesicherte Seite mit einem vertrauenswürdigen Zertifikat.  
 
* Die Beispielkonfiguration verwendet das SSL-Zertifikat der ISPConfig-Schnittstelle.  
Outlook erfordert den Zugriff auf eine SSL-gesicherte Seite mit einem vertrauenswürdigen Zertifikat.  
* Damit dies funktioniert, muss es sich um ein gültiges öffentlich signiertes Wildcard-Zertifikat handeln.  
 
* Zum Beispiel ein von StartSSL signiertes Level 2 (persönliche Identität) Zertifikat.  
Die Beispielkonfiguration verwendet das SSL-Zertifikat der ISPConfig-Schnittstelle. Damit dies funktioniert, muss es sich um ein gültiges öffentlich signiertes Wildcard-Zertifikat handeln. Zum Beispiel ein von StartSSL signiertes Level 2 (persönliche Identität) Zertifikat.  
* Das sollte ausreichen, damit Outlook ohne Fehlermeldungen und Warnungen funktioniert.  
 
Das sollte ausreichen, damit Outlook ohne Fehlermeldungen und Warnungen funktioniert.  


== Aufstellen  ==
== Aufstellen  ==
=== Bereiten Sie ISPConfig vor  ===
=== Bereiten Sie ISPConfig vor  ===
 
* Das Discover-Plugin wird nicht als von ISPConfig verwaltete Website realisiert.  
Das Discover-Plugin wird nicht als von ISPConfig verwaltete Website realisiert. Diese Einrichtungsanleitung erklärt die Einrichtung des vHost von Grund auf neu. Sie können es also auf jedem Ihrer Server installieren, auf dem ein Webserver läuft.  
* Diese Einrichtungsanleitung erklärt die Einrichtung des vHost von Grund auf neu.  
* Sie können es also auf jedem Ihrer Server installieren, auf dem ein Webserver läuft.  


==== Beispiel für Apache2  ====
==== Beispiel für Apache2  ====
Beispielkonfiguration für Apache2
* Fügen Sie eine neue vHost-Konfigurationsdatei hinzu:


Beispielkonfiguration für Apache2 (Ubuntu 16.04) * Fügen Sie eine neue vHost-Konfigurationsdatei hinzu: <tt>vi /etc/apache2/sites-available/discover.my-service.com.conf</tt>
'''/etc/apache2/sites-available/discover.my-service.com.conf'''
 
 
 
Inhalt:
 
        <VirtualHost *:80>
          ServerName discover.my-service.com
          ServerAlias autoconfig.my-service.com
          ServerAlias autoconfig.*
          ServerSignature Off


          <nowiki># Redirect non HTTPS and wrong domain names</nowiki>
<VirtualHost *:80>
          RewriteEngine On
  ServerName discover.my-service.com
          RewriteCond %{HTTPS} !on [OR]
  ServerAlias autoconfig.my-service.com
          RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  ServerAlias autoconfig.*
          RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
  ServerSignature Off
        </VirtualHost>
 
  # Redirect non HTTPS and wrong domain names
        <VirtualHost *:443>
  RewriteEngine On
          ServerName discover.my-service.com
  RewriteCond %{HTTPS} !on [OR]
          ServerAlias autoconfig.my-service.com
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
          ServerAlias autoconfig.*
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
          ServerAdmin hostmaster@my-service.com
</VirtualHost>
          ServerSignature Off
 
<VirtualHost *:443>
          ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
  ServerName discover.my-service.com
 
  ServerAlias autoconfig.my-service.com
          <nowiki># Redirect client domains to my-service.com when connecting direct via HTTPS</nowiki>
  ServerAlias autoconfig.*
          RewriteEngine On
  ServerAdmin hostmaster@my-service.com
          RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  ServerSignature Off
          RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
 
  ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
          <IfModule mod_fcgid.c>
            DocumentRoot /var/www/discover
  # Redirect client domains to my-service.com when connecting direct via HTTPS
            SuexecUserGroup ispapps ispapps
  RewriteEngine On
            <Directory /var/www/discover>
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
              Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
              AllowOverride AuthConfig Indexes Limit Options FileInfo
              <FilesMatch "\.php$">
  <IfModule mod_fcgid.c>
                AddHandler fcgid-script .php
    DocumentRoot /var/www/discover
              </FilesMatch>
    SuexecUserGroup ispapps ispapps
              FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
    <Directory /var/www/discover>
              Require all granted
      Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
            </Directory>
      AllowOverride AuthConfig Indexes Limit Options FileInfo
          </IfModule>
      <FilesMatch "\.php$">
 
        AddHandler fcgid-script .php
          <IfModule mod_php5.c>
      </FilesMatch>
            DocumentRoot /var/www/discover
      FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
            AddType application/x-httpd-php .php
      Require all granted
            <Directory /var/www/discover>
    </Directory>
              Require all granted
  </IfModule>
            </Directory>
          </IfModule>
  <IfModule mod_php5.c>
 
    DocumentRoot /var/www/discover
          <nowiki># This config uses the certificate that is used for ISPC Panel</nowiki>
    AddType application/x-httpd-php .php
          <nowiki># Change path if needed</nowiki>
    <Directory /var/www/discover>
          SSLEngine On
      Require all granted
          SSLProtocol All -SSLv2 -SSLv3
    </Directory>
          <nowiki># SSLCipherSuite </nowiki>        ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
  </IfModule>
          SSLHonorCipherOrder    on
          SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
  # This config uses the certificate that is used for ISPC Panel
          SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
  # Change path if needed
          <nowiki># Always wise to include the cert chain, change as needed and uncomment</nowiki>
  SSLEngine On
          <nowiki>#SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt</nowiki>
  SSLProtocol All -SSLv2 -SSLv3
        </VirtualHost>
  # SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
 
  SSLHonorCipherOrder    on
==== Example for nginx ====
  SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
 
  SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
Fügen Sie einer Serverkonfiguration Ihrer Wahl die folgenden Standorte hinzu: (Annahme: discover.my-service.com)
  # Always wise to include the cert chain, change as needed and uncomment
 
  #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
  location ~* ^(/mail/config-v1.1.xml|/autodiscover) {
</VirtualHost>
    index    index.html index.htm index.php;
    rewrite ^(.*)$ /index.php?file=$1 last;
  }
  location /index.php {
    root          /var/www/discover;
    include      /etc/nginx/fastcgi_params;
 
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    access_log /var/log/nginx/automail_access.log;
    error_log /var/log/nginx/automail_error.log;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_intercept_errors on;
    fastcgi_temp_file_write_size 256k;
  }


=== Installieren Sie das Tool  ===
=== Installieren Sie das Tool  ===
* Rufen Sie Ihr ISPConfig-Panel unter '''System -> Remote Users '''und erstellen Sie einen neuen Remote-Benutzer mit diesen Rechten (ISPConfig 3.1-Elementnamen):  
* Rufen Sie Ihr ISPConfig-Panel unter '''System -> Remote Users '''und erstellen Sie einen neuen Remote-Benutzer mit diesen Rechten (ISPConfig 3.1-Elementnamen):  
** Serverfunktionen  
** Serverfunktionen  
Zeile 137: Zeile 102:
** (optional) Geben Sie Domänennamen von SMTP/IMAP/POP-Servern ein, um die automatische Erkennung über die ISPConfig-API vollständig zu überschreiben  
** (optional) Geben Sie Domänennamen von SMTP/IMAP/POP-Servern ein, um die automatische Erkennung über die ISPConfig-API vollständig zu überschreiben  


 
cd /var/www
 
git clone https://github.com/SpicyWeb-de/isp-mailConfig.git discover
Shell-Befehle:
chown -R ispapps:ispapps discover
 
cd discover
cd /var/www
cp config.dist.php config.php
git clone https://github.com/SpicyWeb-de/isp-mailConfig.git discover
vi config.php
chown -R ispapps:ispapps discover
cd discover
cp config.dist.php config.php
vi config.php


=== DNS Config ===
=== DNS Config ===
 
Fügen Sie die folgenden DNS-Einträge für die Zone my-service.com hinzu:  
Fügen Sie die folgenden DNS-Einträge für die Zone my-service.com hinzu: * <tt>A</tt> <tt>discover</tt> -> <tt>ISPConfig-SERVER-IP</tt>  
* <tt>A</tt> <tt>discover</tt> -> <tt>ISPConfig-SERVER-IP</tt>  
** vielleicht auch <tt>AAAA</tt>, wenn IPv6 für ISPConfig-Server verfügbar ist  
** vielleicht auch <tt>AAAA</tt>, wenn IPv6 für ISPConfig-Server verfügbar ist  
* <tt>CNAME</tt> <tt>autoconfig</tt> -> <tt>discover</tt>  
* <tt>CNAME</tt> <tt>autoconfig</tt> -> <tt>discover</tt>  


 
Fügen Sie die folgenden DNS-Einträge für die Zone my-mail.com hinzu, um die automatische Konfiguration zu aktivieren:  
 
* <tt>SRV</tt> <tt>_autodiscover._tcp</tt> -> <tt>1 10 443 discover.my-service.com</tt>  
Fügen Sie die folgenden DNS-Einträge für die Zone my-mail.com hinzu, um die automatische Konfiguration zu aktivieren: * <tt>SRV</tt> <tt>_autodiscover._tcp</tt> -> <tt>1 10 443 discover.my-service.com</tt>  
* [SRV-Format auf Route53: [Priorität] [Gewicht] [Port] [Server-Hostname]]  
* [SRV-Format auf Route53: [Priorität] [Gewicht] [Port] [Server-Hostname]]  
* <tt>CNAME</tt> <tt>autoconfig</tt> -> <tt>discover.my-service.com.</tt>  
* <tt>CNAME</tt> <tt>autoconfig</tt> -> <tt>discover.my-service.com.</tt>  


=== Testen  ===
=== Testen  ===
 
* Dieses Tool funktioniert nur für real existierende E-Mail-Konten, da es die ISPC Remote API nach ihnen abfragt.  
Dieses Tool funktioniert nur für real existierende E-Mail-Konten, da es die ISPC Remote API nach ihnen abfragt.  
* Stellen Sie beim Testen sicher, dass Sie Adressen verwenden, die auf Ihrem Server vorhanden sind.  
 
Stellen Sie beim Testen sicher, dass Sie Adressen verwenden, die auf Ihrem Server vorhanden sind.  


==== Mozilla / Thunderbird  ====
==== Mozilla / Thunderbird  ====
 
* Geben Sie [https://discover.my-service.com/mail/config-v1.1.xml?emailaddress=user%40my-mail.com https://discover.my-service.com/mail/config-v1.1.xml?emailaddress=user%40my-mail.com ]in Ihrem Browser  
Geben Sie [https://discover.my-service.com/mail/config-v1.1.xml?emailaddress=user%40my-mail.com https://discover.my-service.com/mail/config-v1.1.xml?emailaddress=user%40my-mail.com ]in Ihrem Browser  


Für eine bestehende Mailadresse im emailaddress-Parameter sollten Sie eine Antwort wie diese erhalten:  
Für eine bestehende Mailadresse im emailaddress-Parameter sollten Sie eine Antwort wie diese erhalten:  
 
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
<clientConfig version="1.1">
    <emailProvider id="my-mail.com">
    <emailProvider id="my-mail.com">
        <domain>my-mail.com</domain>
        <domain>my-mail.com</domain>
        <displayName>YOUR SERIVCE NAME</displayName>
        <displayName>YOUR SERIVCE NAME</displayName>
        <displayShortName>SERVICE</displayShortName>
        <displayShortName>SERVICE</displayShortName>
        <incomingServer type="pop3">
        <incomingServer type="pop3">
            <hostname>mailserver.my-service.com</hostname>
            <hostname>mailserver.my-service.com</hostname>
            <port>995</port>
            <port>995</port>
            <socketType>SSL</socketType>
            <socketType>SSL</socketType>
            <authentication>password-cleartext</authentication>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
            <username>user@my-mail.com</username>
            <pop3>
            <pop3>
                <leaveMessagesOnServer>true</leaveMessagesOnServer>
                <leaveMessagesOnServer>true</leaveMessagesOnServer>
                <downloadOnBiff>true</downloadOnBiff>
                <downloadOnBiff>true</downloadOnBiff>
                <daysToLeaveMessagesOnServer>10</daysToLeaveMessagesOnServer>
                <daysToLeaveMessagesOnServer>10</daysToLeaveMessagesOnServer>
            </pop3>
            </pop3>
        </incomingServer>
        </incomingServer>
        <incomingServer type="imap">
        <incomingServer type="imap">
            <hostname>mailserver.my-service.com</hostname>
            <hostname>mailserver.my-service.com</hostname>
            <port>993</port>
            <port>993</port>
            <socketType>SSL</socketType>
            <socketType>SSL</socketType>
            <authentication>password-cleartext</authentication>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
            <username>user@my-mail.com</username>
        </incomingServer>
        </incomingServer>
        <outgoingServer type="smtp">
        <outgoingServer type="smtp">
            <hostname>mailserver.my-service.com</hostname>
            <hostname>mailserver.my-service.com</hostname>
            <port>587</port>
            <port>587</port>
            <socketType>STARTTLS</socketType>
            <socketType>STARTTLS</socketType>
            <authentication>password-cleartext</authentication>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
            <username>user@my-mail.com</username>
        </outgoingServer>
        </outgoingServer>
    </emailProvider>
    </emailProvider>
</clientConfig>
</clientConfig>


==== Microsoft Outlook  ====
==== Microsoft Outlook  ====
* Da Outlook eine XML-Datei mit Benutzerdaten an den Server sendet, können Sie diese nicht einfach im Browser aufrufen, um sie zu testen.
* Sie können Microsofts Remote Connectivity Analyzer unter [https://testconnectivity.microsoft.com/ https://testconnectivity.microsoft.com/ ], um zu überprüfen, ob die '''Outlook-AutoDiscovery '''funktioniert.
* Es dauert einige Zeit, sollte aber auch bei einem bestehenden Mailkonto auf my-mail.com ein positives Ergebnis liefern.


Da Outlook eine XML-Datei mit Benutzerdaten an den Server sendet, können Sie diese nicht einfach im Browser aufrufen, um sie zu testen.
[[Kategorie:ISPConfig]]
 
Sie können Microsofts Remote Connectivity Analyzer unter [https://testconnectivity.microsoft.com/ https://testconnectivity.microsoft.com/ ], um zu überprüfen, ob die '''Outlook-AutoDiscovery '''funktioniert.
 
Es dauert einige Zeit, sollte aber auch bei einem bestehenden Mailkonto auf my-mail.com ein positives Ergebnis liefern.
 
=== Änderungen  ===
 
11.02.2016 Djerk Geurts - Geändert, um den Server konfigurierbar zu machen. Multiserver-Konfigurationen sind nicht gut bedient, wenn Benutzer auf einen einzelnen Server verwiesen werden. config.php erlaubt jetzt die Verwendung eines erkannten Server-Hostnamens oder eines konfigurierten. Plus allgemeine Updates für ISPConfig 3.1.
 
11.06.2019 Conrad Sachweh - Gnome Evolution handhaben und statische Konfiguration bei ungültigen Eingaben zurückgeben.

Aktuelle Version vom 15. April 2023, 09:19 Uhr

Einleitung

Mit diesem Tool können Sie allen Ihren Kunden in einer Multiserver-Umgebung die automatische Erkennung von E-Mail-Konten in Thunderbird und Outlook anbieten.

Platzhalter

  • my-service.com = Die Domäne, auf der Sie Ihren "Autodiscover"-Dienst ausführen
  • my-mail.com = Die Domain, für die Sie Autodiscover und Autoconfig aktivieren möchten
  • PANEL-SERVER-IP = IP-Adresse des ISPConfig-Servers (Sie können das Tool natürlich auf jedem/jedem Server in Ihrer Umgebung installieren)
    • Falls Sie es auf einem anderen Server als dem Panel installieren, müssen Sie stattdessen einen anderen Benutzer und eine andere Gruppe verwenden ispappsin vHost-Konfigurations- und Konsolenbefehlen.

Anforderungen

  • php-soap wird für API-Requests benötigt. php7.3-Seife zum Beispiel.
  • Outlook erfordert den Zugriff auf eine SSL-gesicherte Seite mit einem vertrauenswürdigen Zertifikat.
  • Die Beispielkonfiguration verwendet das SSL-Zertifikat der ISPConfig-Schnittstelle.
  • Damit dies funktioniert, muss es sich um ein gültiges öffentlich signiertes Wildcard-Zertifikat handeln.
  • Zum Beispiel ein von StartSSL signiertes Level 2 (persönliche Identität) Zertifikat.
  • Das sollte ausreichen, damit Outlook ohne Fehlermeldungen und Warnungen funktioniert.

Aufstellen

Bereiten Sie ISPConfig vor

  • Das Discover-Plugin wird nicht als von ISPConfig verwaltete Website realisiert.
  • Diese Einrichtungsanleitung erklärt die Einrichtung des vHost von Grund auf neu.
  • Sie können es also auf jedem Ihrer Server installieren, auf dem ein Webserver läuft.

Beispiel für Apache2

Beispielkonfiguration für Apache2

  • Fügen Sie eine neue vHost-Konfigurationsdatei hinzu:

/etc/apache2/sites-available/discover.my-service.com.conf

<VirtualHost *:80>
  ServerName discover.my-service.com
  ServerAlias autoconfig.my-service.com
  ServerAlias autoconfig.*
  ServerSignature Off

  # Redirect non HTTPS and wrong domain names
  RewriteEngine On
  RewriteCond %{HTTPS} !on [OR]
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
</VirtualHost>

<VirtualHost *:443>
  ServerName discover.my-service.com
  ServerAlias autoconfig.my-service.com
  ServerAlias autoconfig.*
  ServerAdmin hostmaster@my-service.com
  ServerSignature Off

  ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log

  # Redirect client domains to my-service.com when connecting direct via HTTPS
  RewriteEngine On
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]

  <IfModule mod_fcgid.c>
    DocumentRoot /var/www/discover
    SuexecUserGroup ispapps ispapps
    <Directory /var/www/discover>
      Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
      AllowOverride AuthConfig Indexes Limit Options FileInfo
      <FilesMatch "\.php$">
        AddHandler fcgid-script .php
      </FilesMatch>
      FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
      Require all granted
    </Directory>
  </IfModule>

  <IfModule mod_php5.c>
    DocumentRoot /var/www/discover
    AddType application/x-httpd-php .php
    <Directory /var/www/discover>
      Require all granted
    </Directory>
  </IfModule>

  # This config uses the certificate that is used for ISPC Panel
  # Change path if needed
  SSLEngine On
  SSLProtocol All -SSLv2 -SSLv3
  # SSLCipherSuite  ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
  SSLHonorCipherOrder     on
  SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
  SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
  # Always wise to include the cert chain, change as needed and uncomment
  #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
</VirtualHost>

Installieren Sie das Tool

  • Rufen Sie Ihr ISPConfig-Panel unter System -> Remote Users und erstellen Sie einen neuen Remote-Benutzer mit diesen Rechten (ISPConfig 3.1-Elementnamen):
    • Serverfunktionen
    • Mail-Benutzerfunktionen
  • Wenn sich Ihr Automail-Host von Ihrem ISPConfig-Multiserver-Master unterscheidet, erlauben Sie dem Remote-Benutzer den Zugriff von dieser Remote-Host-Adresse
  • Klonen Sie das Repository in den Discover-Webordner
  • Wenn Sie Apache2 verwenden, bearbeiten Sie .htaccess und ersetzen Sie SERVER.TLD durch den FQDN Ihres Computers
  • Kopieren Sie die mitgelieferte Konfigurationsdatei
  • Öffnen Sie es in Ihrem bevorzugten Editor
    • Geben Sie ISPC-URLs und Remote User Credentials sowie den Namen Ihres Dienstes ein
    • (optional) Geben Sie einen Fallback-Server-FQDN ein, der verwendet werden soll, wenn der Benutzer in ISPConfig nicht gefunden werden konnte (standardmäßig $_SERVER['SERVER_NAME'])
    • (optional) Geben Sie Domänennamen von SMTP/IMAP/POP-Servern ein, um die automatische Erkennung über die ISPConfig-API vollständig zu überschreiben
cd /var/www
git clone https://github.com/SpicyWeb-de/isp-mailConfig.git discover
chown -R ispapps:ispapps discover
cd discover
cp config.dist.php config.php
vi config.php

DNS Config

Fügen Sie die folgenden DNS-Einträge für die Zone my-service.com hinzu:

  • A discover -> ISPConfig-SERVER-IP
    • vielleicht auch AAAA, wenn IPv6 für ISPConfig-Server verfügbar ist
  • CNAME autoconfig -> discover

Fügen Sie die folgenden DNS-Einträge für die Zone my-mail.com hinzu, um die automatische Konfiguration zu aktivieren:

  • SRV _autodiscover._tcp -> 1 10 443 discover.my-service.com
  • [SRV-Format auf Route53: [Priorität] [Gewicht] [Port] [Server-Hostname]]
  • CNAME autoconfig -> discover.my-service.com.

Testen

  • Dieses Tool funktioniert nur für real existierende E-Mail-Konten, da es die ISPC Remote API nach ihnen abfragt.
  • Stellen Sie beim Testen sicher, dass Sie Adressen verwenden, die auf Ihrem Server vorhanden sind.

Mozilla / Thunderbird

Für eine bestehende Mailadresse im emailaddress-Parameter sollten Sie eine Antwort wie diese erhalten:

<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
    <emailProvider id="my-mail.com">
        <domain>my-mail.com</domain>
        <displayName>YOUR SERIVCE NAME</displayName>
        <displayShortName>SERVICE</displayShortName>
        <incomingServer type="pop3">
            <hostname>mailserver.my-service.com</hostname>
            <port>995</port>
            <socketType>SSL</socketType>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
            <pop3>
                <leaveMessagesOnServer>true</leaveMessagesOnServer>
                <downloadOnBiff>true</downloadOnBiff>
                <daysToLeaveMessagesOnServer>10</daysToLeaveMessagesOnServer>
            </pop3>
        </incomingServer>
        <incomingServer type="imap">
            <hostname>mailserver.my-service.com</hostname>
            <port>993</port>
            <socketType>SSL</socketType>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
        </incomingServer>
        <outgoingServer type="smtp">
            <hostname>mailserver.my-service.com</hostname>
            <port>587</port>
            <socketType>STARTTLS</socketType>
            <authentication>password-cleartext</authentication>
            <username>user@my-mail.com</username>
        </outgoingServer>
    </emailProvider>
</clientConfig>

Microsoft Outlook

  • Da Outlook eine XML-Datei mit Benutzerdaten an den Server sendet, können Sie diese nicht einfach im Browser aufrufen, um sie zu testen.
  • Sie können Microsofts Remote Connectivity Analyzer unter https://testconnectivity.microsoft.com/ , um zu überprüfen, ob die Outlook-AutoDiscovery funktioniert.
  • Es dauert einige Zeit, sollte aber auch bei einem bestehenden Mailkonto auf my-mail.com ein positives Ergebnis liefern.