test.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <p><style>
  2. figure img {
  3. max-width: 30rem;
  4. }
  5. </style></p>
  6. <h1>Gestion des abonnements aux listes mail</h1>
  7. <p>Coin offre un module optionnel pour que les adhérent·e·s puissent
  8. s'abonner/désabonner aux listes mail de l'asso. de manière autonome (listes de
  9. discussions et/ou de diffusion).</p>
  10. <p>Coin n'est pas lui-même un serveur de listes mail. Il se contente de
  11. s'interfacer avec ce dernier pour lui pousser des liste d'inscrit·e·s.</p>
  12. <p>Il existe une interface membre pour auto-gérer ses propres abonnements, et une
  13. interface admin pour gérer l'ensemble des abonnements lorsqu'on possède les
  14. droits admin dans coin.</p>
  15. <p><figure>
  16. <img src="../_img/user-maillists.png" alt="vue adhérent" title="" />
  17. <img src="../_img/admin-maillists.png" alt="vue admin" title="" />
  18. <figcaption>Vues adhérent·e et admin</figcaption>
  19. </figure></p>
  20. <h2>Fonctionnement</h2>
  21. <p>Coin stocke les abonnements des membres aux listes dans sa base de données, en
  22. utilisant l'adresse mail de la fiche membre.</p>
  23. <p>Il synchronise ensuite ces listes vers le serveur de listes mail en appelant
  24. une commande pour chaque liste gérée. Cette commande est configurable, et
  25. reçoit sur son entrée standard la liste des emails inscrits (une adresse mail
  26. par ligne).</p>
  27. <p>Si le serveur de base données est sur une machine différente du serveur Coin,
  28. il est possible d'utiliser la commande ssh qui appelle un script distant.</p>
  29. <p>La synchronisation sera faite :</p>
  30. <ul>
  31. <li>à l'abonnement/désabonnement à une liste via l'interface admin de Coin
  32. (section « Listes mail »).</li>
  33. <li>à l'abonnement/désabonnement à une liste via l'interface membre dee coin </li>
  34. <li>au changement d'adresse mail d'un·e adhérent·e</li>
  35. </ul>
  36. <p>À la suppression d'un·e adhérent·e.</p>
  37. <h2>Avertissements</h2>
  38. <ul>
  39. <li><p>En l'état, tout membre avec un accès de base à coin aura pouvoir d'auto-gérer
  40. son inscription à toute liste gérée par coin. Il n'est cependant pas
  41. obligatoire donner à Coin la main sur les abonnements à toutes les listes d'un
  42. serveur de listes.</p></li>
  43. <li><p>Il est préférable que les listes mail gérées par Coin le soient totalement. Si
  44. des inscriptions sont faites par d'autres moyens (mail, interface du serveur de
  45. liste de discussions… etc), ces modifications risquent d'être écrasées par la
  46. gestion d'abonnements de Coin.</p></li>
  47. </ul>
  48. <h2>Mise en place</h2>
  49. <h3>1. Activer l'app <em>maillist</em></h3>
  50. <p>Il faut activer l'app <em>maillists</em>, cela fonctionne <a href="../README.md#using-optional-apps">comme les autres apps optionelles</a>. Il
  51. faut ensuite lancer la commande suivante pour mettre à jour la base de données :</p>
  52. <pre><code>./manage.py migrate
  53. </code></pre>
  54. <h3>2. Configurer la synchronisation.</h3>
  55. <p>Il y a un paramètre obligatoire à renseigner dans votre fichier.
  56. <em>settings_local.py</em> : <code>MAILLIST_SYNC_COMMAND</code>.</p>
  57. <p>Il s'agit de la commande à lancer pour « pousser » la d'emails inscrits à une
  58. liste mail donnée. Vous pouvez utiliser des variable dans la commande à lancer :</p>
  59. <ul>
  60. <li><code>{short_name}</code> : l'identifiant court de la liste (ex: <em>discussion</em>)</li>
  61. <li><code>{email}</code>: l'email de la liste (ex: <em>discussion@example.com</em>)</li>
  62. </ul>
  63. <p>Si par exemple votre serveur de listes attend un bête fichier texte
  64. avec une adresse par ligne dans <em>/etc/lists/nomdelaliste</em> :</p>
  65. <pre><code>MAILLIST_SYNC_COMMAND = 'cat /etc/lists/{short_name}'
  66. </code></pre>
  67. <p>Si le ce même serveur se situe sur un autre serveur, on pourra utiliser par
  68. exemple :</p>
  69. <pre><code>MAILLIST_SYNC_COMMAND = "ssh coin@mail.example.com 'cat /etc/lists/{short_name}'"
  70. </code></pre>
  71. <p>Des cas d'usages plus complexes (ex: inscription via une API HTTP). sont
  72. envisageables en recourant à un petit script sur mesure.</p>
  73. <h3>3. Renseigner les listes</h3>
  74. <p>Se rendre dans l'admin de coin et dans la nouvelle catégorie « Listes mail »,
  75. renseigner les listes mail que l'on souhaite voir gérées par coin.</p>
  76. <p>La synchronisation devrait se faire à chaque (dé)inscription que vous faites à
  77. une liste.</p>