Listmonk avec transfert d'e-mail pour une livraison sécurisée des newsletters

Ce guide fournit aux développeurs des instructions étape par étape pour la configuration Listmonk, un puissant gestionnaire de newsletters et de listes de diffusion open source, à utiliser Un courriel transféré en tant que fournisseur SMTP. Cette combinaison vous permet de gérer efficacement vos campagnes tout en garantissant une distribution d'e-mails sécurisée, privée et fiable.

  • Listmonk:Gère la gestion des abonnés, l'organisation des listes, la création de campagnes et le suivi des performances.
  • Un courriel transféré: Agit comme un serveur SMTP sécurisé, gérant l'envoi réel d'e-mails avec des fonctionnalités de sécurité intégrées telles que le cryptage SPF, DKIM, DMARC et TLS.

En intégrant ces deux éléments, vous conservez un contrôle total sur vos données et votre infrastructure tout en tirant parti du système de livraison robuste de Forward Email.

  • Open source:Listmonk et les principes de Forward Email mettent l'accent sur la transparence et le contrôle. Vous hébergez Listmonk vous-même et êtes propriétaire de vos données.
  • Axé sur la confidentialité:Forward Email est conçu avec la confidentialité à l'esprit, minimisant la conservation des données et se concentrant sur la transmission sécurisée.
  • Rentable:Listmonk est gratuit et Forward Email propose des niveaux gratuits généreux et des forfaits payants abordables, ce qui en fait une solution économique.
  • Évolutivité:Listmonk est très performant et l'infrastructure de Forward Email est conçue pour une livraison fiable à grande échelle.
  • Adapté aux développeurs:Listmonk propose une API robuste et Forward Email fournit une intégration SMTP simple et des webhooks.

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Un serveur privé virtuel (VPS) exécutant une distribution Linux récente (Ubuntu 20.04+ recommandé) avec au moins 1 CPU et 1 Go de RAM (2 Go recommandés).
  • Un nom de domaine que vous contrôlez (accès DNS requis).
  • Un compte actif avec Un courriel transféré.
  • Racine ou sudo accès à votre VPS.
  • Connaissance de base des opérations de ligne de commande Linux.

Ces étapes vous guident dans l’installation de Listmonk à l’aide de Docker et Docker Compose sur votre VPS.

1. Mettez à jour votre serveur

Assurez-vous que la liste des packages de votre système et les packages installés sont à jour.

sudo apt update && sudo apt upgrade -y

2. Installer les dépendances

Installez Docker, Docker Compose et UFW (Uncomplicated Firewall).

sudo apt install -y docker.io docker-compose ufw

3. Télécharger la configuration de Listmonk

Créez un répertoire pour Listmonk et téléchargez la version officielle docker-compose.yml déposer.

mkdir listmonk && cd listmonk
curl -Lo docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml

Ce fichier définit le conteneur d'application Listmonk et son conteneur de base de données PostgreSQL requis.

4. Configurer le pare-feu (UFW)

Autorisez le trafic essentiel (SSH, HTTP, HTTPS) à traverser le pare-feu. Si votre SSH fonctionne sur un port non standard, ajustez-le en conséquence.

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Confirmez l’activation du pare-feu lorsque vous y êtes invité.

5. Configurer l'accès HTTPS

Exécuter Listmonk via HTTPS est crucial pour la sécurité. Deux options principales s'offrent à vous :

Si le DNS de votre domaine est géré par Cloudflare, vous pouvez tirer parti de leur fonction proxy pour un HTTPS facile.

  1. DNS ponctuel: Créer un A enregistrement dans Cloudflare pour votre sous-domaine Listmonk (par exemple, listmonk.yourdomain.com) pointant vers votre adresse IP VPS. Assurez-vous que Statut du proxy est réglé sur Proxy (nuage orange).
  2. Modifier Docker Compose:Modifier le docker-compose.yml fichier que vous avez téléchargé :
    sed -i 's/9000:9000/80:9000/' docker-compose.yml
    
    Cela rend Listmonk accessible en interne sur le port 80, que Cloudflare peut ensuite proxy et sécuriser avec HTTPS.

Option B : Utilisation d’un proxy inverse (Nginx, Caddy, etc.)

Alternativement, vous pouvez configurer un proxy inverse comme Nginx ou Caddy sur votre VPS pour gérer la terminaison HTTPS et les demandes de proxy vers Listmonk (exécuté sur le port 9000 par défaut).

  • Conserver la valeur par défaut ports: - "127.0.0.1:9000:9000" dans docker-compose.yml pour garantir que Listmonk n'est accessible que localement.
  • Configurez le proxy inverse que vous avez choisi pour écouter sur les ports 80 et 443, gérer l'acquisition de certificats SSL (par exemple, via Let's Encrypt) et transférer le trafic vers http://127.0.0.1:9000.
  • La configuration détaillée du proxy inverse dépasse le cadre de ce guide, mais de nombreux didacticiels sont disponibles en ligne.

6. Démarrez Listmonk

Revenez à votre listmonk répertoire (si vous n'y êtes pas déjà) et démarrez les conteneurs en mode détaché.

cd ~/listmonk # Or the directory where you saved docker-compose.yml
docker compose up -d

Docker téléchargera les images nécessaires et démarrera l'application Listmonk et les conteneurs de base de données. La première fois, cela peut prendre une à deux minutes.

Accéder à Listmonk: Vous devriez maintenant pouvoir accéder à l'interface Web de Listmonk via le domaine que vous avez configuré (par exemple, https://listmonk.yourdomain.com).

7. Configurer le transfert d'e-mails SMTP dans Listmonk

Ensuite, configurez Listmonk pour envoyer des e-mails à l’aide de votre compte de transfert d’e-mail.

  1. Activer SMTP dans le transfert d'e-mails: Assurez-vous d'avoir généré les informations d'identification SMTP dans le tableau de bord de votre compte de transfert d'e-mails. Suivez les Guide de transfert d'e-mails pour envoyer des e-mails avec un domaine personnalisé via SMTP si vous ne l'avez pas déjà fait.
  2. Configurer Listmonk:Connectez-vous à votre panneau d'administration Listmonk.
    • Accéder à Paramètres -> SMTP.

    • Listmonk intègre la fonction de transfert d'e-mails. Sélectionnez Transférer un e-mail à partir de la liste des fournisseurs ou saisissez manuellement les détails suivants :

      ParamètreValeur
      Hôtesmtp.forwardemail.net
      Port465
      Protocole d'authentificationLOGIN
      Nom d'utilisateurVotre e-mail de transfert nom d'utilisateur SMTP
      Mot de passeVotre e-mail de transfert Mot de passe SMTP
      TLSSSL/TLS
      Par e-mailVotre désiré From adresse (par exemple, newsletter@yourdomain.com). Assurez-vous que ce domaine est configuré dans Transférer le courrier électronique.
    • Important: Toujours utiliser le port 465 avec SSL/TLS Pour des connexions sécurisées avec Forward Email. N'utilisez pas STARTTLS (port 587).

    • Cliquez Sauvegarder.

  3. Envoyer un e-mail de testUtilisez le bouton « Envoyer un e-mail de test » dans les paramètres SMTP. Saisissez une adresse de destinataire accessible, puis cliquez sur EnvoyerVérifiez que l'e-mail arrive dans la boîte de réception du destinataire.

8. Configurer le traitement des rebonds

Le traitement des retours permet à Listmonk de gérer automatiquement les e-mails qui n'ont pas pu être distribués (par exemple, en raison d'adresses invalides). Forward Email fournit un webhook pour notifier Listmonk des retours.

Configuration du transfert d'e-mails

  1. Connectez-vous à votre Tableau de bord de transfert d'e-mails.
  2. Accéder à Domaines, sélectionnez le domaine que vous utilisez pour l'envoi et accédez à son Paramètres page.
  3. Faites défiler vers le bas jusqu'à la URL du webhook de rebond section.
  4. Saisissez l'URL suivante en remplaçant <your_listmonk_domain> avec le domaine ou sous-domaine réel où votre instance Listmonk est accessible :
    https://<your_listmonk_domain>/webhooks/service/forwardemail
    
    Exemple: https://listmonk.yourdomain.com/webhooks/service/forwardemail
  5. Faites défiler vers le bas jusqu'à la Clé de vérification de la charge utile de signature Webhook section.
  6. Copie la clé de vérification générée. Vous en aurez besoin dans Listmonk.
  7. Enregistrez les modifications dans les paramètres de votre domaine de transfert de courrier électronique.

Configuration de Listmonk

  1. Dans votre panneau d'administration Listmonk, accédez à Paramètres -> Rebonds.
  2. Activer Activer le traitement des rebonds.
  3. Activer Activer les webhooks de rebond.
  4. Faites défiler vers le bas jusqu'à la Fournisseurs de Webhook section.
  5. Activer Un courriel transféré.
  6. Collez le Clé de vérification de la charge utile de signature Webhook vous avez copié depuis le tableau de bord de transfert d'e-mails vers le Touche de transfert d'e-mail champ.
  7. Cliquez Sauvegarder en bas de la page.
  8. Le traitement des retours est désormais configuré ! Lorsque Forward Email détecte un retour pour un e-mail envoyé par Listmonk, il en informe votre instance Listmonk via le webhook, et Listmonk marque l'abonné en conséquence.
  9. Suivez les étapes ci-dessous dans Essai pour s'assurer que tout fonctionne.

Voici un aperçu rapide des fonctions principales de Listmonk :

Créer une liste de diffusion

  • Aller à Listes dans la barre latérale.
  • Cliquez Nouvelle liste.
  • Remplissez les détails (Nom, Type : Public/Privé, Description, Tags) et Sauvegarder.

Ajouter des abonnés

  • Accédez au Abonnés section.
  • Vous pouvez ajouter des abonnés :
    • Manuellement: Cliquez Nouvel abonné.
    • Importer: Cliquez Importer des abonnés pour télécharger un fichier CSV.
    • API:Utilisez l'API Listmonk pour les ajouts programmatiques.
  • Affecter des abonnés à une ou plusieurs listes lors de la création ou de l'importation.
  • Meilleures pratiques: Utilisez un processus de double confirmation. Configurez-le sous Paramètres -> Inscription et abonnements.

Créer et envoyer une campagne

  • Aller à Campagnes -> Nouvelle campagne.
  • Remplissez les détails de la campagne (nom, objet, e-mail de l'expéditeur, liste(s) à laquelle envoyer).
  • Choisissez votre type de contenu (texte enrichi/HTML, texte brut, HTML brut).
  • Rédigez le contenu de votre e-mail. Vous pouvez utiliser des variables de modèle comme {{ .Subscriber.Email }} ou {{ .Subscriber.FirstName }}.
  • Envoyez toujours d’abord un e-mail de test ! Utilisez l’option « Envoyer un test » pour prévisualiser l’e-mail dans votre boîte de réception.
  • Une fois satisfait, cliquez sur Démarrer la campagne pour l'envoyer immédiatement ou le programmer pour plus tard.

  • Livraison SMTP: Envoyez régulièrement des e-mails de test via la page des paramètres SMTP de Listmonk et testez des campagnes pour vous assurer que les e-mails sont livrés correctement.
  • Gestion des rebonds: Envoyer une campagne de test à une adresse e-mail invalide connue (par exemple, bounce-test@yourdomain.com (si vous n'en avez pas sous la main, les résultats peuvent varier). Vérifiez les statistiques de la campagne dans Listmonk après un court instant pour voir si le rebond est enregistré.
  • En-têtes d'e-mails:Utilisez des outils comme Testeur de courrier ou inspectez manuellement les en-têtes des e-mails pour vérifier que SPF, DKIM et DMARC passent, indiquant une configuration correcte via le transfert d'e-mails.
  • Journaux de courrier électronique transférés: Vérifiez les journaux de votre tableau de bord de transfert de courrier électronique si vous suspectez des problèmes de livraison provenant du serveur SMTP.

  • ModèlesListmonk utilise le moteur de création de modèles de Go. Explorez sa documentation pour une personnalisation avancée : {{ .Subscriber.Attribs.your_custom_field }}.
  • APIListmonk fournit une API REST complète pour la gestion des listes, des abonnés, des campagnes, des modèles, etc. Retrouvez le lien vers la documentation de l'API dans le pied de page de votre instance Listmonk.
  • Champs personnalisés: Définissez des champs d'abonné personnalisés sous Paramètres -> Champs d'abonné pour stocker des données supplémentaires.
  • Webhooks:Outre les rebonds, Listmonk peut envoyer des webhooks pour d'autres événements (par exemple, les abonnements), permettant l'intégration avec d'autres systèmes.

En combinant la puissance auto-hébergée de Listmonk avec la diffusion sécurisée et respectueuse de la confidentialité de Forward Email, vous créez une plateforme d'email marketing robuste et éthique. Vous conservez l'entière propriété des données de votre audience tout en bénéficiant d'une délivrabilité élevée et de fonctionnalités de sécurité automatisées.

Cette configuration offre une alternative évolutive, rentable et conviviale pour les développeurs aux services de messagerie propriétaires, s'alignant parfaitement sur l'éthique des logiciels open source et de la confidentialité des utilisateurs.

Bon envoi ! 🚀