Zum Inhalt springen

ISPConfig/Plugin/Autodiscover: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „ ISPConfig “ durch „ ISPConfig
 
(15 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 ==
 
=== Bereiten Sie [[ISPConfig]] vor ===
== Aufstellen ==
* Das Discover-Plugin wird nicht als von [[ISPConfig]] verwaltete Website realisiert.  
=== Bereiten Sie ISPConfig vor ===
* 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.  
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  ====


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


'''/etc/apache2/sites-available/discover.my-service.com.conf'''
'''/etc/apache2/sites-available/discover.my-service.com.conf'''
        <VirtualHost *:80>
 
          ServerName discover.my-service.com
<VirtualHost *:80>
          ServerAlias autoconfig.my-service.com
  ServerName discover.my-service.com
          ServerAlias autoconfig.*
  ServerAlias autoconfig.my-service.com
          ServerSignature Off
  ServerAlias autoconfig.*
  ServerSignature Off
   
   
          # Redirect non HTTPS and wrong domain names
  # Redirect non HTTPS and wrong domain names
          RewriteEngine On
  RewriteEngine On
          RewriteCond %{HTTPS} !on [OR]
  RewriteCond %{HTTPS} !on [OR]
          RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
          RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
        </VirtualHost>
</VirtualHost>
   
   
        <VirtualHost *:443>
<VirtualHost *:443>
          ServerName discover.my-service.com
  ServerName discover.my-service.com
          ServerAlias autoconfig.my-service.com
  ServerAlias autoconfig.my-service.com
          ServerAlias autoconfig.*
  ServerAlias autoconfig.*
          ServerAdmin hostmaster@my-service.com
  ServerAdmin hostmaster@my-service.com
          ServerSignature Off
  ServerSignature Off
   
   
          ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
  ErrorLog /var/log/ispconfig/httpd/discover.my-server.com/error.log
   
   
          # Redirect client domains to my-service.com when connecting direct via HTTPS
  # Redirect client domains to my-service.com when connecting direct via HTTPS
          RewriteEngine On
  RewriteEngine On
          RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
  RewriteCond %{HTTP_HOST} !^discover\.my-service\.com$
          RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
  RewriteRule ^(.*)$ https://discover.my-service.com$1 [L,R]
   
   
          <IfModule mod_fcgid.c>
  <IfModule mod_fcgid.c>
            DocumentRoot /var/www/discover
  DocumentRoot /var/www/discover
            SuexecUserGroup ispapps ispapps
  SuexecUserGroup ispapps ispapps
            <Directory /var/www/discover>
  <Directory /var/www/discover>
              Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
    Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
              AllowOverride AuthConfig Indexes Limit Options FileInfo
    AllowOverride AuthConfig Indexes Limit Options FileInfo
              <FilesMatch "\.php$">
    <FilesMatch "\.php$">
                AddHandler fcgid-script .php
    AddHandler fcgid-script .php
              </FilesMatch>
    </FilesMatch>
              FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
    FCGIWrapper /var/www/php-fcgi-scripts/apps/.php-fcgi-starter .php
              Require all granted
    Require all granted
            </Directory>
  </Directory>
          </IfModule>
  </IfModule>
   
   
          <IfModule mod_php5.c>
  <IfModule mod_php5.c>
            DocumentRoot /var/www/discover
  DocumentRoot /var/www/discover
            AddType application/x-httpd-php .php
  AddType application/x-httpd-php .php
            <Directory /var/www/discover>
  <Directory /var/www/discover>
              Require all granted
    Require all granted
            </Directory>
  </Directory>
          </IfModule>
  </IfModule>
   
   
          # This config uses the certificate that is used for ISPC Panel
  # This config uses the certificate that is used for ISPC Panel
          # Change path if needed
  # Change path if needed
          SSLEngine On
  SSLEngine On
          SSLProtocol All -SSLv2 -SSLv3
  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
  # 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
  SSLHonorCipherOrder   on
          SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
  SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
          SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
  SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
          # Always wise to include the cert chain, change as needed and uncomment
  # Always wise to include the cert chain, change as needed and uncomment
          #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
  #SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.chain.class2.server.crt
        </VirtualHost>
</VirtualHost>


==== Example for nginx ====
=== Installieren Sie das Tool ===
Fügen Sie einer Serverkonfiguration Ihrer Wahl die folgenden Standorte hinzu: (Annahme: discover.my-service.com)
* Rufen Sie Ihr [[ISPConfig]]-Panel unter '''System -> Remote Users '''und erstellen Sie einen neuen Remote-Benutzer mit diesen Rechten (ISPConfig 3.1-Elementnamen):  
 
  location ~* ^(/mail/config-v1.1.xml|/autodiscover) {
    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 ===
 
* 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  
** Mail-Benutzerfunktionen  
** 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  
* 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  
* 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  
* Wenn Sie Apache verwenden, bearbeiten Sie .htaccess und ersetzen Sie SERVER.TLD durch den FQDN Ihres Computers  
* Kopieren Sie die mitgelieferte Konfigurationsdatei  
* Kopieren Sie die mitgelieferte Konfigurationsdatei  
* Öffnen Sie es in Ihrem bevorzugten Editor  
* Öffnen Sie es in Ihrem bevorzugten Editor  
** Geben Sie ISPC-URLs und Remote User Credentials sowie den Namen Ihres Dienstes ein  
** 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 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  
** (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
  cd /var/www
Zeile 141: Zeile 112:
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>  


Zeile 149: Zeile 120:
* <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  


Zeile 159: Zeile 130:
  <?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.  
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.
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.
[[Kategorie:ISPConfig/Plugin]]

Aktuelle Version vom 4. Juli 2026, 13:11 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 Apache

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