Intégrer une mailing list à un site Hugo avec rss2email et mailman

Ce tutoriel résume les étapes que j’ai suivies pour configurer une liste de diffusion des nouveaux articles d’un site Hugo par courriel. Ce n’est pas une liste complète et il peut manquer des étapes. Il s’agit d’un aide-mémoire.

Configuration du fichier RSS

  1. Modifier le layout rss.xml pour n’inclure que les contenus de type posts et non les pages
  2. S’assurer que le title: défini dans config.yml apparaît correctement dans le fichier index.xml généré par Hugo
  3. Inclure l’image de l’article dans l’élément <content:encoded> du layout rss.xml si on veut qu’elle apparaisse dans le courriel
  4. Si une image générique est utilisée dans le header du flux RSS, modifier le chemin pour pointer vers le logo du site en format jpeg

Configuration de mailman

  1. Créer une mailing list dans l’outil Cpanel de Bluehost
  2. Définir l’adresse de contact de la liste, par ex. info@monsite.com. Les messages seront envoyés à cette adresse pour diffusion.
  3. Dans l’onglet Général changer le subject_prefix pour une courte description du site. Cela servira de préfixe dans le sujet des courriels
  4. Définir le courriel de l’administrateur de la liste et l’ajouter comme membre contributeur. On utilisera cette adresse pour envoyer les courriels avec rss2email.

Configuration de rss2email

L’outil rss2email est utilisé pour lire le flux RSS, identifier les nouveaux articles et envoyer un courriel à la liste diffusion.

# pkg_add rss2email

Ajouter le nouveau flux RSS avec la ligne de commande ou en modifiant le fichier de configuration ~/.config/rss2email.cfg.

$ r2e new user@example.com
$ r2e add name-for-rss https://www.archlinux.org/feeds/packages/ e-mail-address

Par exemple:

[feed.monsite.info]
url = https://monsite.com/index.xml
from = user@monsite.com
to = info@monsite.com
smtp-username = user@monsite.com
smtp-password = abcd1234
smtp-server = monsite.com
smtp-port = 465
smtp-ssl = True

Ne pas oublier de rouler la commande suivante en premier pour ne pas bombarder les gens de tous les anciens articles:

$ r2e run --no-send

Se référer aux liens suivants pour plus d’explications:

Formulaire d’abonnement

La dernière étape qui reste est d’offrir une façon pour nos visiteurs de s’inscrire à la liste de diffusion. Obtenir le lien du formulaire d’inscription dans mailman puis créer une page abonnement.md dans /content/ avec le code suivant.

<div class="isso-postbox"><div class="form-wrapper"><section class="auth-section">
<form action="https://monsite.com/mailman/subscribe/info_monsite.com" method="POST">
<p class="input-wrapper">Courriel:</p><p class="input-wrapper"> <input class="input-wrapper" name="email" /></p><p class="post-action"><input type="submit" value="Abonnez-moi!" /></p>
</form>
</section>
</div></div>