• # Quelques pistes

    Posté par (site web personnel, Mastodon) . En réponse au journal Solution pour diffuser une newsletter/des emails. Évalué à 6.

    D'abord, soyons clairs : oui, c'est la merde. C'est un problème qui devrait avoir des solutions archi-faciles en 2025 et qui n'en a pas. Notamment parce que l'email, qui au départ devait être décentralisé, se retrouve de facto largement centralisé non seulement parce que les utilisateurs vont en masse chez Google comme d'habitude, mais aussi parce que les gros fournisseurs rendent la vie dure aux petits serveurs au motif plus ou moins honnête de lutter contre le spam. Envoyer des emails en masse devient de facto payant, soit en argent à des entreprises qui font payer la réputation de leurs serveurs, soit en temps de sysadminage. (J'ai défendu dans un billet de blog l'idée que la bonne solution pour lutter contre le spam serait un système avec un composant centralisé analogue au DNS, où la création d'une adresse mail serait payante. Mais trêve de rêveries, je reviens en mode « répondre à ton problème dans le monde imparfait dans lequel nous vivons ».)

    Pour choisir un serveur depuis lequel envoyer tes emails, il faut commencer par évaluer les besoins. Tu dis avoir 2000 personnes à qui envoyer chaque email. Un rapide coup d'œil aux archives de ta liste suggère que cela fait de l'ordre de 5000 emails envoyés par mois. C'est trop pour un hébergeur de boîte mail personnelle typique. Tu peux te tourner vers un service comme Sendgrid, Mailgun ou Postmark. C'est scandaleusement cher, au moins 15€/mois pour les trois que je viens de citer. Tu peux te tourner vers un petit service comme mailmanlists, mais la délivrabilité de tes emails sera dépendante de facteurs hors de ton contrôle, et manifestement l'expérience n'a pas bien fonctionné pour toi. Ou tu peux te résoudre à héberger ton propre serveur mail. C'est ce que j'ai dû faire personnellement, au moment de migrer une mailing list vers un forum (https://lilypond.community).

    La bonne nouvelle, c'est que ce n'est pas si compliqué que ça de nos jours d'installer le serveur lui-même. J'étais complètement débutant en sysadminage à l'époque, et je me suis perdu dans Postfix, Dovecot et autres outils habituellement recommandés, mais j'ai trouvé Stalwart qui fait tout en un (SMTP et IMAP), avec une configuration que j'ai trouvée facile et une documentation à peu près lisible. Je précise que c'était il y a deux ans et à vue de nez le machin a l'air d'être devenu plus commercial depuis, mais j'ai plutôt apprécié.

    La mauvaise nouvelle, c'est que tu vas devoir mettre ton serveur sur un VPS chez un fournisseur de cloud (plutôt que dans un coin chez toi, car une IP résidentielle se ferait bloquer en moins de deux, apparemment), et ces fournisseurs ferment souvent le port 25 pour éviter de devenir des fermes à spam. Par exemple, il est impossible de le rouvrir chez DigitalOcean, et chez Hetzner, j'ai dû attendre un mois avant de pouvoir faire une demande de déblocage au support. C'est un point à vérifier avant de choisir l'hébergeur.

    L'autre mauvaise nouvelle, c'est qu'il va falloir faire un petit peu attention à la réputation de ton serveur (https://www.dnsbl.info est un outil assez utile). Dans mon cas, le principal problème est que Hotmail rejetait complètement les emails de mon serveur dès le premier, et j'ai dû me battre pour arriver à joindre un humain chez le support, mais ils ont fini par le débloquer. À part ça, je dois dire que je suis agréablement surpris qu'il n'y ait pas eu à ma connaissance d'autre problème de délivrabilité. Ce n'est que ma propre expérience.

    À part le serveur, l'autre problème est de trouver un outil qui permette aux gens de s'abonner via un formulaire sur une page Web (avec un email de confirmation), et qui insère dans chaque email envoyé un lien de désinscription (de préférence en fin d'email et dans l'en-tête List-Unsubscribe). Ça, c'est tellement peu de code que j'aurais personnellement tendance à écrire moi-même un petit script, mais tu peux en trouver des centaines en PHP ou autre.

    HTH