Email - autodiscover / autoconfig
Je n’avais pas eu pris le temps de mettre en place les configurations nécessaires permettant aux différents clients
de messagerie (bureau / mobile) de récupérer automatiquement l’adresse du serveur, les ports, les protocoles, …
Ca marche comment ?
Lorsqu’on souhaite lire ses emails ailleurs que sur son navigateur Internet, on ouvre son client de messagerie préféré et on suit les différentes étapes ; il y a alors 2 solutions, soit le client arrive à “récupérer” la configuration liée au domaine de messagerie, soit vous êtes obligé de le faire manuellement ..
L’idée est bien de se faciliter la vie :) Mais comme tout n’est pas simple, chaque client utilise un des mécanismes suivants :
- une base de données ISPB gérée par Mozilla ;
- deux fichiers de configuration mis à disposition en HTTPs ;
- des entrées DNS sur la zone du domaine ;
- la devinette, le client essaye de combiner smtp ou imap avec le nom de domaine de votre messagerie ;
On met quoi en place ?
Du coup pour pouvoir répondre aux demandes de tous les clients de messagerie, on va commencer par rajouter les entrées DNS suivantes :
@ IN MX 10 mail.allella.io.
autoconfig IN CNAME www
autodiscover IN CNAME www
_imaps._tcp SRV 0 1 993 mail.allella.io.
_submission._tcp SRV 0 1 465 mail.allella.io.
_autodiscover._tcp SRV 0 0 443 autodiscover.allella.fr.
On met à disposition aussi les fichiers de configuration en se basant sur cette proposition. On clone le repo dans un répertoire local sur le serveur, on adapte les fichiers pour sa configuration et on inclut ce bloc pour chaque domaine.
/etc/nginx/conf.d/local$ cat autodiscover.conf
location ~ /(?:a|A)utodiscover/(?:a|A)utodiscover.xml {
root /var/www;
try_files /autodiscover/autodiscover.php =404;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_ADDR "";
fastcgi_param REMOTE_ADDR $http_x_real_ip;
}
location ~ /mail/config-v1.1.xml {
root /var/www;
try_files /autodiscover/config-v1.1.xml =404;
}
/etc/nginx/sites-enabled$ cat allella.fr
server {
listen 443;
server_name allella.fr www.allella.fr;
include /etc/nginx/conf.d/local/autodiscover.conf;
[...]
}
Et voilà, une fois l’adresse ajoutée, Thunderbird trouve tout seul sa configuration :