Sources du blog ALLELLA
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

2020-05-12-email_autoconfig.markdown 2.8 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ---
  2. layout: post
  3. title: "email - autodiscover / autoconfig"
  4. date: 2020-04-26
  5. categories: [technique, securite, web, outils]
  6. excerpt_separator: <!--more-->
  7. ---
  8. Je n'avais pas ~~eu~~ pris le temps de mettre en place les configurations nécessaires permettant aux différents clients
  9. de messagerie (bureau / mobile) de récupérer automatiquement l'adresse du serveur, les ports, les protocoles, ...
  10. ## Ca marche comment ?
  11. Lorsqu'on souhaite lire ses emails ailleurs que sur son navigateur Internet, on ouvre son client de messagerie préféré et
  12. on suit les différentes étapes ; il y a alors 2 solutions, soit le client arrive à "récupérer" la configuration liée au
  13. domaine de messagerie, soit vous êtes obligé de le faire manuellement ..
  14. 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 :
  15. * une base de données ISPB gérée par Mozilla ;
  16. * deux fichiers de configuration mis à disposition en HTTPs ;
  17. * des entrées DNS sur la zone du domaine ;
  18. * la devinette, le client essaye de combiner smtp ou imap avec le nom de domaine de votre messagerie ;
  19. ## On met quoi en place ?
  20. Du coup pour pouvoir répondre aux demandes de tous les clients de messagerie, on va commencer par rajouter les entrées DNS suivantes :
  21. ```bash
  22. @ IN MX 10 mail.allella.io.
  23. autoconfig IN CNAME www
  24. autodiscover IN CNAME www
  25. _imaps._tcp SRV 0 1 993 mail.allella.io.
  26. _submission._tcp SRV 0 1 465 mail.allella.io.
  27. _autodiscover._tcp SRV 0 0 443 autodiscover.allella.fr.
  28. ```
  29. On met à disposition aussi les fichiers de configuration en se basant sur [cette proposition](https://github.com/gronke/email-autodiscover).
  30. 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.
  31. ```bash
  32. /etc/nginx/conf.d/local$ cat autodiscover.conf
  33. location ~ /(?:a|A)utodiscover/(?:a|A)utodiscover.xml {
  34. root /var/www;
  35. try_files /autodiscover/autodiscover.php =404;
  36. fastcgi_pass unix:/run/php/php7.3-fpm.sock;
  37. fastcgi_param PATH_INFO $path_info;
  38. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  39. fastcgi_param SERVER_ADDR "";
  40. fastcgi_param REMOTE_ADDR $http_x_real_ip;
  41. }
  42. location ~ /mail/config-v1.1.xml {
  43. root /var/www;
  44. try_files /autodiscover/config-v1.1.xml =404;
  45. }
  46. /etc/nginx/sites-enabled$ cat allella.fr
  47. server {
  48. listen 443;
  49. server_name allella.fr www.allella.fr;
  50. include /etc/nginx/conf.d/local/autodiscover.conf;
  51. [...]
  52. }
  53. ```
  54. Et voilà, une fois l'adresse ajoutée, Thunderbird trouve tout seul sa configuration :
  55. ![thunderbird_autoconfig]({{ site.baseurl }}/assets/images/thunderbird_autoconfig.png)