--- layout: post title: "Email - autodiscover / autoconfig" date: 2020-04-26 categories: [technique, outils] excerpt_separator: --- 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 : ```bash @ 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](https://github.com/gronke/email-autodiscover). 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. ```bash /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 : ![thunderbird_autoconfig]({{ site.baseurl }}/assets/images/thunderbird_autoconfig.png)