LINUX:Auto-configuration du client de messagerie
→ retour au menu de concernant la messagerie
But
Lors de l'initialisation d'un compte mail dans client de messagerie tels Mozilla Thunderbird ou Microsoft Office Outlook, il n'est pas facile de configurer les différents paramètres permettant d'assurer les connexions avec le serveur de messagerie. La mise en place de l'auto-configuration permet d'automatiser cette tâche.
Dans les exemples qui suivent, nous utiliserons le nom de domaine "home.dom" de notre réseau local. Mais pour un domaine référencé au niveau mondial dans un serveur DNS, le principe est équivalent. Notre serveur de messagerie sera "mail.home.dom".
Principe
Au niveau du client de messagerie, on fournit l'adresse mail et le mot de passe associé et le serveur du domaine concerné fournit le reste du paramétrage.
Le client de messagerie va interroger le serveur WEB du domaine correspondant. Ce serveur détient un fichier de configuration sous format XML qui est renvoyé au client qui remplit le reste des paramètres.
Il existe différents noms de fichiers XML ayant une structure spécifique en fonction du client de messagerie. Ils sont placés à des endroits spécifiques dans des sites WEB.
- Pour Microsoft Office Outlook, le chemin est sous la forme:
- http://<nom de domaine>/autodiscover/autodiscover.xml Selon notre exemple: https://home.dom/autodiscover/autodiscover.xml
- Pour Mozilla Thunderbird, le chemin peut se présenter sous trois formes:
- http://<nom de domaine>/.well-known/autoconfig/mail/config-v1.1.xml Par exemple: https://home.dom/.well-known/autoconfig/mail/config-v1.1.xml
- http://autoconfig.<nom de domaine>/mail/config-v1.1.xml Par exemple: https://autoconfig.home.dom/mail/config-v1.1.xml
- http://<nom de domaine>/autodiscover/autodiscover.xml Par exemple: https://home.dom/autodiscover/autodiscover.xml
Certificats
Comme il se doit actuellement, nous utiliserons un échange sécurisé. Toute requête de type HTTP sera automatiquement redirigée vers un type HTTPS.
Il faut donc disposer de certificats adaptés. Reportez-vous à l'article sur l'Extension de la CA privée (V3).
Bien sûr, si votre serveur est accessible via Internet, on passe d'office aux certificats créés par Let's Encrypt (certificats gratuits SSL/TLS).
Reconnaissance de notre serveur auprès du client
Notre serveur doit être reconnu par notre machine client à partir de laquelle nous désirons consulter nos mails.
Si notre serveur n'est accessible que sur notre réseau local, soit nous disposons d'un serveur DNS local, soit il faut adapter le fichier "hosts" sur notre machine client.
- Sous Windows, ce fichier se trouve à l'adresse suivante: "c:\windows\system32\drivers\etc\hosts"
- Sous Linux, ce fichier se trouve à l'adresse suivante: "/etc/hosts"
Pour notre exemple, nous amendons le fichier "hosts" qui doit contenir (ou amendée) la ligne suivante:
192.168.1.100 home.dom autoconfig.home.dom mail.home.dom
Voyez l'article sur Le fichier HOSTS pour plus d'informations.
Si par contre, votre serveur est accessible via Internet, on ajoute ces entrées dans le gestionnaire de votre zone DNS tel OVH.
Voyez les articles tels la Configuration du serveur DNS via GSLB ou la Configuration du serveur DNS via OVH.
Serveur WEB : Apache
L'étape suivante consiste à configurer notre serveur WEB. Nous utilisons Apache.
A noter que pour la suite, nous utiliserons un script PHP; il faut que ce module soit ajouté et actif dans notre serveur WEB. Voyez l'article sur PHP. Le module SSL ("mod_ssl") doit aussi être installé. Voyez l'article sur HTTP: serveur Web.
On commence par aborder le protocole HTTP (port 80). On va y intégrer nos trois machines virtuelles: "home.dom" et "autoconfig.home.dom".
On ajoute dans la configuration d'Apache se trouvant sous le répertoire "/etc/httpd" les ligne suivantes: ---
<VirtualHost *:80>
ServerName home.dom
RewriteEngine on
RewriteRule ^ https://home.dom%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:80>
ServerName autoconfig.home.dom
RewriteEngine on
RewriteRule ^ https://autoconfig.home.dom%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
On remarque que l'on fait appel au module de réécriture de la requête qui nous redirige vers le protocole HTTPS (port 443).
On passe ensuite à l'ajout de la configuration du protocole HTTPS (port 443).
On ajoute dans la configuration d'Apache se trouvant sous le répertoire "/etc/httpd" les ligne suivantes: ---
<VirtualHost *:443> ServerName home.dom SSLEngine on SSLOptions +StrictRequire SSLCertificateKeyFile /etc/pki/home/private/home.key SSLCertificateFile /etc/pki/home/certs/home.pem DocumentRoot /web/autoconfig <Directory /web/autoconfig> Options +FollowSymLinks -Indexes AllowOverride All Include conf.d/php8.cfg </Directory> </VirtualHost> <VirtualHost *:443> ServerName autoconfig.home.dom SSLEngine on SSLOptions +StrictRequire SSLCertificateKeyFile /etc/pki/home/private/home.key SSLCertificateFile /etc/pki/home/certs/home.pem DocumentRoot /web/autoconfig <Directory /web/autoconfig> Options +FollowSymLinks -Indexes AllowOverride All </Directory> </VirtualHost>
On y remarque:
- l'activation du protocole SSL
- l'ajout des certificats
- l'ajout des paramètres pour le répertoire qui accueillera nos fichiers XML de l'auto-configuration mail.
- l'activation de PHP (note: Pour la seconde entrée, il peut être évité.)
Pour que cette nouvelle configuration, on doit redémarrer notre serveur WEB:
systemctl restat httpd
Arborescence
Au point précédent, on fait appel au répertoire "/web/autoconfig". Il s'agit de le créer. Il faut donner à l'utilisateur "apache" les droits de lecture/exécution sur ce répertoire et ceux qui seront créés en dessous et les droits de lecture sur les fichiers qui y seront logés.
On crée ensuite les sous-dossiers cités plus haut:
- /web/autoconfig/mail
- /web/autoconfig/.well-known/mail
- /web/autoconfig/autodiscover
Fichier XML pour Mozilla Thunderbird
Dans les répertoires:
- /web/autoconfig/mail
- /web/autoconfig/.well-known/mail
, on crée le fichier "config-v1.1.xml".
Voici son contenu:
<clientConfig version="1.1">
<emailProvider id="home.dom">
<domain>home.dom</domain>
<displayName>Home Mail</displayName>
<displayShortName>Home</displayShortName>
<incomingServer type="imap">
<hostname>mail.home.dom</hostname>
<port>993</port>
<socketType>SSL</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILLOCALPART%</username>
</incomingServer>
<incomingServer type="pop3">
<hostname>mail.home.dom</hostname>
<port>995</port>
<socketType>SSL</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILLOCALPART%</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>mail.home.dom</hostname>
<port>587</port>
<socketType>STARTTLS</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILLOCALPART%</username>
</outgoingServer>
</emailProvider>
</clientConfig>
Nous avons opté pour une configuration classique, utilisée dans nos articles sur Postfix et Dovecot.
On y remarque trois blocs pour les protocoles:
- IMAPS (port 993 - protocole SSL)
- POP3S (port 995 - protocole SSL)
- Submission (port 587 - protocole STARTTLS)
Le mot de passe passe en clair.
Le serveur de messagerie est "mail.home.dom".
L'utilisateur pour l'authentification auprès du serveur de messagerie peut se présenter sous deux formes:
- adresse mail, par exemple "pdupont@home.dom"
- utilisateur, par exemple "pdupond"
La balise "username" doit être adaptée en fonction:
- %EMAILADDRESS% pour l'adresse mail
- %EMAILLOCALPART% pour l'utilisateur
Selon le format, l'adresse mail fournie en argument lors de la requête HTTPS, est adaptée dans la réponse.
Nous utilisons le second format.
Pour une description complète de ce fichier XML, reportez-vous à l'URL https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat
Cet exemple est a adapter selon vos besoins.
Fichier XML pour Microsoft Office Outlook
Dans le répertoire:
- /web/autoconfig/autodiscover
, on devrait trouver le fichier "autodiscover.xml".
Mais le nom d'utilisateur ne peux être adapté automatiquement comme pour les requêtes du point précédent.
Il faut donc contourner cette restriction par un script PHP qui va remplir
→ retour au menu de concernant la messagerie