GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installez Mailtrain v1.24 sur le serveur Ubuntu 20.04 sans Docker

Ce tutoriel vous montrera comment installer Mailtrain sur Ubuntu 20.04 sans Docker. Mailtrain est une application de newsletter open source auto-hébergée, une alternative aux fournisseurs de services de messagerie commerciaux comme Mailchimp. Vous pouvez utiliser Mailtrain pour envoyer des newsletters à vos abonnés via votre propre serveur de messagerie ou en utilisant n'importe quel service de relais SMTP (Mailjet, SendGrid, AmazonSES, Mailgun, etc.).

Mettre à jour :Mailtrain V2 est sorti. Les nouveaux utilisateurs doivent utiliser la V2 au lieu de la V1.24 :Comment installer Mailtrain v2 sur le serveur Ubuntu 20.04

Mailtrain est publié sous les termes de la licence GPL v3.0, construit sur Node.js et MySQL/MariaDB. La dernière version est la v1.24.1, publiée le 28 septembre 2018. Les fonctionnalités de Mailtrain sont les suivantes :

  • Il vous permet de gérer facilement de grandes listes de diffusion (comme 1 million d'abonnés).
  • Vous pouvez ajouter des abonnés manuellement, via l'API, ou importer à partir d'un fichier CSV.
  • Il prend en charge les champs personnalisés (champs de texte, chiffres, listes déroulantes ou cases à cocher), les balises de fusion et les formulaires personnalisés.
  • Segmentation de la liste.
  • Campagne RSS :générez automatiquement la newsletter à partir du flux RSS et envoyez-la aux abonnés.
  • Les abonnés peuvent télécharger leurs clés publiques GPG et Mailtrain chiffrera la newsletter pour eux.
  • Vous permet de vérifier les statistiques de clics individuels pour chaque lien.
  • Éditeurs de modèles d'e-mail avancés et éditeur de code HTML.
  • Automatisation :envoyez des e-mails spécifiques lorsque l'utilisateur active votre déclencheur prédéfini.
  • Vous pouvez créer une liste de diffusion ouverte (autoriser l'abonnement public) et une liste de diffusion fermée (les abonnés sont ajoutés à la liste par l'administrateur).
  • Il vous permet de reprendre d'anciennes campagnes par e-mail (envoyer d'anciennes campagnes à de nouveaux abonnés).

Étape 1 :Choisissez le bon fournisseur d'hébergement

L'auto-hébergement peut vous faire économiser beaucoup d'argent. Mailtrain est un logiciel gratuit et open-source. Vous n'avez qu'à payer 26 $ / mois pour le VPS (serveur privé virtuel), qui peut exécuter un serveur de messagerie complet et la plate-forme de marketing par e-mail Mailtrain. Il peut facilement gérer des millions d'abonnés. Donc votre coût total est toujours de 26 $/mois, quel que soit le nombre d'abonnés que vous avez . Si vous possédez des millions d'abonnés sur MailChimp, le coût serait de milliers de dollars par mois.

Il n'est pas facile de trouver un fournisseur de VPS (Virtual Private Server) adapté à l'hébergement et au marketing par e-mail. De nombreuses sociétés d'hébergement comme DigitalOcean bloquent le port 25. DigitalOcean ne débloquerait pas le port 25, vous devrez donc configurer un relais SMTP pour contourner le blocage, ce qui peut vous coûter de l'argent supplémentaire. Si vous utilisez Vultr VPS, le port 25 est bloqué par défaut. Ils peuvent le débloquer si vous ouvrez un ticket d'assistance, mais ils peuvent le bloquer à nouveau à tout moment s'ils décident que votre activité d'envoi d'e-mails n'est pas autorisée. Vultr peut en fait le rebloquer si vous utilisez leurs serveurs pour envoyer des newsletters.

Un autre problème est que les grands hébergeurs bien connus comme DigitalOcean ou Vultr sont abusés par les spammeurs. Souvent, l'adresse IP du serveur figure sur plusieurs listes noires. Vultr a des plages d'adresses IP entières sur liste noire.

ScalaHosting est une très bonne option pour exécuter un serveur de messagerie car

  • Ils ne bloquent pas le port 25.
  • L'adresse IP ne figure sur aucune liste noire d'e-mails. (Au moins, c'est vrai dans mon cas. J'ai choisi le centre de données de Dallas.) Vous ne voulez certainement pas être répertorié sur la redoutable liste noire IP de Microsoft Outlook ou sur la liste noire de SpamRats. Certaines listes noires bloquent toute une plage d'adresses IP et vous n'avez aucun moyen de supprimer votre adresse IP de ce type de listes noires.
  • Vous pouvez modifier l'enregistrement PTR pour améliorer la délivrabilité des e-mails.
  • Ils vous permettent d'envoyer des newsletters à vos abonnés par e-mail avec non limites horaires ou limite journalière, quelles qu'elles soient. Notez que vous n'êtes pas autorisé à envoyer des spams, également appelés non sollicités e-mail en masse. Si le destinataire ne vous donne pas explicitement l'autorisation d'envoyer des e-mails et que vous lui en envoyez, il s'agit d'un e-mail non sollicité.

Je recommande de suivre le tutoriel lié ci-dessous pour configurer correctement un serveur VPS Linux sur ScalaHosting. Utilisez le code promo linuxbabe2021 sur ScalaHostingpage de paiement pour économiser 100 $ si vous choisissez de payer 12 mois d'avance.

  • Comment créer un serveur VPS Linux sur ScalaHosting

Vous avez également besoin d'un nom de domaine. J'ai enregistré mon nom de domaine auprès de NameCheap car le prix est bas et ils vous offrent une protection de confidentialité whois gratuite à vie.

Si vous n'avez pas encore votre propre serveur de messagerie, je vous recommande d'utiliser le programme gratuit iRedMail pour configurer rapidement votre propre serveur de messagerie avant d'installer Mailtrain, afin que vous n'ayez pas à dépenser d'argent pour un service de relais SMTP commercial.

Étape 2 :Installer le serveur de base de données MariaDB

Les données de vos abonnés seront stockées dans une base de données. Mailtrain prend en charge MySQL et MariaDB. MariaDB est un remplacement direct de MySQL. Il est développé par d'anciens membres de l'équipe MySQL qui craignent qu'Oracle ne transforme MySQL en un produit à source fermée. Alors installons le serveur de base de données MariaDB.

Entrez la commande suivante pour l'installer sur Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Une fois installé, le serveur MariaDB devrait être automatiquement démarré. Utilisez systemctl pour vérifier son état.

statut systemctl mariadb

Exemple de sortie :

● mariadb.service - Serveur de base de données MariaDB 10.3.22 Chargé :chargé (/lib/systemd/system/mariadb.service ; activé ; fournisseur préréglé :e> Actif :actif (en cours d'exécution) depuis le lundi 2020-04-20 15 :31:14 HKT ; il y a 52 s Docs :man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ PID principal :1826628 (mysqld) Statut :"En train de prendre vos requêtes SQL maintenant... " Tâches :30 (limite :9 451) Mémoire :73,0 Mo CGroup :/system.slice/mariadb.service └─1826628 /usr/sbin/mysqld

S'il ne fonctionne pas, démarrez-le avec cette commande :

sudo systemctl démarrer mariadb

Pour permettre à MariaDB de démarrer automatiquement au démarrage du système, exécutez

sudo systemctl enable mariadb

Exécutez maintenant le script de sécurité post-installation.

sudo mysql_secure_installation

Lorsqu'il vous demande d'entrer le mot de passe root MariaDB, appuyez sur la touche Entrée car le mot de passe root n'est pas encore défini. Saisissez ensuite y pour définir le mot de passe root pour le serveur MariaDB.

Ensuite, vous pouvez appuyer sur Entrée pour répondre à toutes les questions restantes, ce qui supprimera l'utilisateur anonyme, désactivera la connexion root à distance et supprimera la base de données de test. Cette étape est une exigence de base pour la sécurité de la base de données MariaDB. (Notez que la lettre Y est en majuscule, ce qui signifie que c'est la réponse par défaut.)

Vérifiez les informations de version du serveur MariaDB.

mariadb --version

Sortie :

mariadb Ver 15.1 Distrib 10.3.22-MariaDB, pour debian-linux-gnu (x86_64) utilisant readline 5.2

Étape 3 :Créer une base de données et un utilisateur pour Mailtrain

Nous devons maintenant nous connecter à la console MariaDB et créer une base de données et un utilisateur pour Mailtrain. Par défaut, le package MaraiDB sur Ubuntu utilise unix_socket pour authentifier la connexion de l'utilisateur, ce qui signifie essentiellement que vous pouvez utiliser le nom d'utilisateur et le mot de passe du système d'exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir de mot de passe root MariaDB.

sudo mariadb -u racine

Créez une base de données pour Mailtrain à l'aide de la commande suivante. Je l'ai nommé mailtrain , mais vous pouvez utiliser le nom de votre choix. (N'oubliez pas le point-virgule.)

créer une base de données mailtrain ;

Entrez ensuite la commande ci-dessous pour créer un utilisateur de base de données pour Mailtrain et accordez tous les privilèges de la base de données mailtrain à l'utilisateur. Remplacer mtuser et your-password avec votre nom d'utilisateur et votre mot de passe préférés.

accorder tous les privilèges sur mailtrain.* à mtuser@localhost identifié par 'mtuser_password' ;

Ensuite, créez un utilisateur avec un accès en lecture seule à la base de données mailtrain. J'ai nommé cet utilisateur mt_readonly .

accorder la sélection sur mailtrain.* TO mt_readonly@localhost identifié par 'mt_readonly_password' ;

Videz la table des privilèges pour que les modifications prennent effet, puis sortez de la console MariaDB.

vider les privilèges ;quitter ;

Étape 4 :Installez Node.js

Mailtrain est construit sur Node.js, qui est un environnement d'exécution JavaScript qui traduit le code JavaScript lisible par l'homme en code machine. Nous devons donc installer Node.js sur Ubuntu 20.04 pour exécuter Mailtrain. Mailtrain nécessite Node.js 7+. La dernière version de Node.js est la v14. Cependant, je ne recommande pas d'utiliser la dernière version, car elle n'est pas compatible avec Mailtrain v1.24. Pour une meilleure compatibilité, je recommande d'installer Node.js 8 à partir du Snap Store.

Si vous avez installé Node.js à partir du référentiel APT officiel, vous devez le désinstaller, car cela interférerait avec la version Snap de Node.js.

sudo apt supprimer nodejs

Ensuite, installez le démon snap.

sudo apt install snapd

Il existe plusieurs versions de Node.js dans le Snap Store, qui peuvent être vues avec :

nœud d'informations instantanées

Sortie :

channels :latest/stable :– latest/candidate :– latest/beta :– latest/edge :15.0.0-nightly2020042524a4e615 2020-04-25 (2668) 30MB classic 14/stable :14.0.0 2020-04- 23 (2647) 30 Mo classique 14/candidat :​​↑ 14/bêta :↑ 14/périphérie :↑ 13/stable :13.13.0 2020-04-14 (2635) 29 Mo classique 13/candidat :​​↑ 13/bêta :↑ 13/ bord :↑ 12/stable :12.16.2 2020-04-23 (2644) 21 Mo cla ssic 12/candidat :​​↑ 12/bêta :↑ 12/bord :↑ 11/stable :11.15.0 2019-06-26 (2336) 19 Mo classique 11/candidat :​​↑ 11/bêta :↑ 11/bord :↑ 10/ stable :10.20.1 2020-04-23 (2638) 20 Mo classique 10/candidat :​​↑ 10/bêta :↑ 10/edge :↑ 9/stable :9.11.2 2018-12-14 (1407) 17 Mo classique 9/candidat :↑ 9/bêta :↑ 9/edge :↑ 8/stable :8.16.0 2019-06-24 (2310) 16 Mo classique 8/candidate :↑ 8/beta :↑ 8/edge :↑ 6/stable :6.17.1 2019-06-24 (2311) 13 Mo classique 6/candidat :↑ 6/bêta :↑ 6/edge :↑ 

Nous pouvons installer Node.js à partir du canal 8/stable.

sudo snap install node --classic --channel=8/stable

Pour vérifier votre version de Node.js et npm, exécutez

node -vnpm -v

Sortie :

Remarque :Si c'est la première fois que vous installez un package Snap sur le serveur, vous devez vous déconnecter et vous reconnecter afin d'utiliser la version snap de Ruby.

Pour compiler et installer des addons natifs à partir de npm, vous devez également installer des outils de compilation :

sudo apt install -y build-essential

Étape 5 :Exécuter Mailtrain

Allez à /var/www/ et récupérez les fichiers Mailtrain de Github.

cd /var/www/sudo git clone https://github.com/Mailtrain-org/mailtrain.git

Importez les données SQL initiales dans la base de données mailtrain à l'aide de la commande suivante. Vous devez entrer le mot de passe de mtuser .

mariadb -u mtuser -p mailtrain  

Créez le fichier de configuration production.toml.

sudo nano /var/www/mailtrain/config/production.toml

Dans ce fichier, vous pouvez ajouter des configurations qui remplacent les configurations par défaut dans /var/www/mailtrain/config/default.toml dossier. Il nous suffit d'ajouter les configurations suivantes.

user="mailtrain"group="mailtrain"[log]level="error"[www]secret="Remplacez ceci par des caractères aléatoires"[mysql]user="mtuser"password="mtuser_password"[queue] processus=5

Enregistrez et fermez le fichier. Créez ensuite le mailtrain utilisateur et groupe pour que le démon mailtrain s'exécute. Notez que nous n'avons pas besoin de créer de mot de passe pour cet utilisateur, nous créons donc un utilisateur système au lieu d'un utilisateur normal.

sudo adduser --system --group mailtrain

Créez un fichier de configuration pour le générateur de rapports.

sudo nano /var/www/mailtrain/workers/reports/config/production.toml

Ajoutez les configurations suivantes. Ce travailleur de rapport aura un accès en lecture seule à la base de données mailtrain.

[log]level="error"[mysql]user="mt_readonly"password="mt_readonly_password"

Enregistrez et fermez le fichier. Modifiez ensuite l'autorisation de /var/www/mailtrain/ .

sudo chown mailtrain:mailtrain /var/www/mailtrain/ -Rsudo chmod o-rwx /var/www/mailtrain/config/

Installez Python2.7 et créez un lien symbolique.

sudo apt install python2.7sudo ln -s /usr/bin/python2.7 /usr/bin/python

Et installez les packages de nœuds requis.

cd /var/www/mailtrainsudo -u mailtrain npm config set scripts-prepend-node-path truesudo -u mailtrain npm install --no-progress --production --unsafe-perm=true

Copiez le fichier d'unité de service Mailtrain systemd dans /etc/systemd/system/ répertoire.

sudo cp /var/www/mailtrain/setup/mailtrain.service /etc/systemd/system/

Ouvrez ce fichier.

sudo nano /etc/systemd/system/mailtrain.service

Modifier /opt/mailtrain vers /var/www/mailtrain . Et changez /usr/bin/node vers /snap/bin/node car nous utilisons la version Snap de Node.js.

Vous pouvez également commenter la ligne suivante. Parce que, avec la ligne suivante activée, si MySQL/MariaDB redémarre, alors le mailtrain.service redémarrera également, et si le serveur MySQL/MariaDB est en cours de mise à jour, alors mailtrain.service s'arrêtera. Je pense qu'il n'est pas nécessaire d'exiger le mysql.service .

Nécessite=mysql.service

Enregistrez et fermez ce fichier. Puis lancez mailtrain.service .

sudo systemctl start mailtrain.service

Vérifiez son état. Assurez-vous qu'il est en cours d'exécution.

statut systemctl mailtrain.service

Sortie :

● mailtrain.service - Serveur Mailtrain Chargé :chargé (/etc/systemd/system/mailtrain.service ; désactivé ; prédéfini par le fournisseur :activé) Actif :actif (en cours d'exécution) depuis le dim 2020-04-26 10:26:37 HKT ; Il y a 11 s PID principal :3058360 (mailtrain) Tâches :20 (limite :9451) Mémoire :228,6 M CGroup :/system.slice/mailtrain.service ├─3058360 mailtrain └─3058396 /snap/node/2310/bin/node /var /www/mailtrain/services/sender.js

Activez le démarrage automatique au démarrage du système.

sudo systemctl enable mailtrain.service

Maintenant que Mailtrain est en cours d'exécution, vous pouvez accéder à l'interface Web de Mailtrain via le port 3000.

adresse-ip-de-votre-serveur :3000

Étape 6 :Configurer le proxy inverse et activer HTTPS

Avant d'utiliser l'interface Web Mailtrain, plaçons-la derrière Nginx, puis activons HTTPS. Installez le serveur Web Nginx sur Ubuntu 20.04 avec :

sudo apt installer nginx

Vous pouvez maintenant copier l'exemple mailtrain-nginx.conf fichier dans /etc/nginx/conf.d/ répertoire.

sudo cp /var/www/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/

Ouvrez ce fichier.

sudo nano /etc/nginx/conf.d/mailtrain-nginx.conf

Trouvez la ligne suivante.

nom_serveur mailtrain.org www.mailtrain.org ;

Modifiez la valeur de server_name paramètre à votre propre nom de domaine comme newsletter.your-domain.com . N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine.

nom_serveur newsletter.linuxbabe.com ;

Enregistrez et fermez le fichier. Testez ensuite les configurations Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl recharger nginx

Vous devriez maintenant pouvoir accéder à l'interface Web de Mailtrain via votre sous-domaine :newsletter.your-domain.com .

Modifiez maintenant /var/www/mailtrain/config/production.toml fichier.

sudo nano /var/www/mailtrain/config/production.toml

Dans le [www] section, ajoutez les deux lignes suivantes pour indiquer que mailtrain est derrière le proxy Nginx et faites-le écouter uniquement sur l'adresse de l'hôte local.

hôte="127.0.0.1"proxy=true

Enregistrez et fermez le fichier. Redémarrez ensuite Mailtrain pour que la modification prenne effet.

sudo systemctl redémarre mailtrain

Étape 7 :Activer HTTPS avec Let's Encrypt

Installez le client Let's Encrypt (certbot) sur votre serveur Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Ensuite, vous pouvez utiliser le plugin Nginx pour obtenir et installer automatiquement un certificat TLS en exécutant la commande suivante.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d newsletter.votre-domaine.com

Vous pouvez désormais accéder à l'interface Web de Mailtrain via votre nom de domaine et une connexion HTTPS sécurisée.

htop La commande me dit que mon serveur utilise environ 500 Mo de RAM. Si j'exécute Mailtrain avec Docker, c'est environ 900 Mo.

Connectez-vous avec le nom d'utilisateur admin et le mot de passe test . Modifiez ensuite l'adresse e-mail et le mot de passe de votre compte. Accédez aux settings page pour modifier les configurations par défaut. Vous devez changer l'adresse de service de http://localhost:3000/ à votre sous-domaine (https://newsletter.your-domain.com ).

Remarque :Le compte administrateur est une cible facile pour les pirates. Pour une meilleure sécurité, il est recommandé de changer le nom d'utilisateur de admin à autre chose. L'interface Web Mailtrain ne fournit pas une telle option, mais vous pouvez modifier le nom d'utilisateur dans la base de données MariaDB à l'aide de la commande SQL.

Dans les Mailer Settings , vous pouvez utiliser SMTP si vous disposez de votre propre serveur de messagerie ou si vous utilisez Amazon SES. En fait, vous pouvez également utiliser d'autres services de relais SMTP dans le SMTP languette. Dans la capture d'écran ci-dessous, j'utilise mon propre serveur de messagerie. Les e-mails seront soumis sur le port 587 avec le cryptage STARTTLS.

Si Mailtrain est installé sur votre serveur de messagerie, vous devez utiliser les paramètres SMTP suivants. Le nom d'hôte doit être 127.0.0.1 et le port doit être 25. Il n'est pas nécessaire d'activer le chiffrement ou l'authentification lorsque vous parlez à localhost.

Enregistrez vos paramètres. Ensuite, vous pouvez créer une liste pour tester les fonctionnalités de Mailtrain.

Comment activer le cache Redis

Vous pouvez installer le serveur Redis pour le cache de session. Cela permettra à Mailtrain d'exécuter 5 processus au lieu du processus unique par défaut, ce qui accélérera la livraison des e-mails si vous avez beaucoup d'abonnés aux e-mails (notez que cela augmentera l'utilisation de la mémoire d'environ 250 Mo).

sudo apt installer redis

Une fois installé, Redis devrait démarrer automatiquement. Vous pouvez vérifier son statut avec :

systemctl status redis

Exemple de sortie :

● redis-server.service - Magasin clé-valeur avancé Chargé :chargé (/lib/systemd/system/redis-server.service ; activé ; préréglage du fournisseur :activé) Actif :actif (en cours d'exécution) depuis Sun 2020-04 -26 11:02:03 HKT ; 4min 23s ago Docs :http://redis.io/documentation, man:redis-server(1) PID principal :3059455 (redis-server) Tâches :4 (limite :9451) Mémoire :2,3 M CGroup :/system.slice /redis-server.service └─3059455 /usr/bin/redis-server 127.0.0.1:6379

S'il ne fonctionne pas, vous pouvez le démarrer avec :

sudo systemctl start redis

Activer le démarrage automatique au démarrage :

sudo systemctl activer redis

Ensuite, modifiez le fichier de configuration Mailtrain.

sudo nano /var/www/mailtrain/config/production.toml

Ajoutez les deux lignes suivantes à la fin du fichier pour activer Redis.

[redis]enabled=true

Enregistrez et fermez le fichier. Redémarrez ensuite Mailtrain.

sudo systemctl redémarre mailtrain

Comment gérer les messages de rebond dans Mailtrain

Tôt ou tard, votre liste de diffusion contiendra des adresses auxquelles vous ne pourrez pas envoyer d'e-mails. Par exemple, lorsqu'un abonné qui utilise une adresse e-mail d'entreprise quitte l'entreprise, cette adresse e-mail sera supprimée. Ainsi, votre serveur de messagerie recevra un message de rebond indiquant que l'e-mail ne peut pas être livré.

Si vous utilisez un service de relais SMTP pour envoyer des e-mails, ils géreront les messages de rebond pour vous. Si vous utilisez votre propre serveur de messagerie pour envoyer des e-mails, vous devez gérer les messages de rebond dans Mailtrain. Mailtrain propose deux façons de gérer les messages rejetés.

  • via VERP
  • via le journal Postfix

Personnellement, j'utilise la méthode VERP, car elle est largement utilisée dans la communauté des e-mails et aussi parce que la deuxième méthode entraîne une utilisation élevée du processeur sur mon serveur.

Gestion des rebonds VERP

Avec VERP (chemin de retour d'enveloppe variable), votre gestionnaire de liste de diffusion utilise des adresses d'enveloppe uniques pour chaque abonné. Pour activer VERP, modifiez le production.toml fichier.

sudo nano /var/www/mailtrain/config/production.toml

Si votre hébergeur Mailtrain n'a pas de serveur SMTP en cours d'exécution, ajoutez le texte suivant.

[verp]enabled=trueport=25disablesenderheader=true

Si votre serveur Mailtrain a un serveur SMTP comme Postfix en cours d'exécution, ajoutez le texte suivant. Le serveur de gestion des rebonds écoutera sur 127.0.0.1:2525 .

[verp] enabled=true port=2525 host="127.0.0.1"disablesenderheader=true

Enregistrez et fermez le fichier. Redémarrez ensuite Mailtrain pour que les modifications prennent effet.

sudo systemctl redémarre mailtrain

Dans l'interface Web de Mailtrain, accédez à Settings -> VERP Bounce Handlding . Cochez Use VERP to catch bounces . Enregistrez vos paramètres.

Ensuite, vous devez créer un enregistrement MX pour le nom d'hôte du serveur (bounces.your-domain.com ), puis ajoutez un enregistrement A pour ce nom d'hôte, pointant vers votre hôte Mailtrain, afin que les messages de rebond puissent être envoyés à votre hôte Mailtrain. Chaque abonné de votre liste aura une adresse d'enveloppe unique telle que [email protected] .

Notez que si vous avez déployé l'enregistrement DMARC pour votre nom de domaine, l'alignement SPF doit être défini sur le mode relâché. S'il est défini sur le mode strict, votre newsletter pourrait échouer à la vérification DMARC.

Si le serveur de gestion des rebonds de Mailtrain écoute sur le port 2525 de 127.0.0.1 et que le serveur SMTP de Postfix écoute sur le port 25 de l'adresse IP publique, vous devez configurer la carte de transport afin que Postfix puisse relayer le message de rebond vers Mailtrain. Créez le fichier de carte de transport.

sudo nano /etc/postfix/transport

Ajoutez la ligne suivante à ce fichier. Cela indique à Postfix de relayer les e-mails avec une adresse comme [email protected] au serveur de gestion des rebonds Mailtrain.

rebonds.votre-domaine.com smtp :[127.0.0.1]:2525

Enregistrez et fermez le fichier. Générez ensuite le fichier d'index.

sudo postmap /etc/postfix/transport

Modifier le fichier de configuration principal de Postfix.

sudo nano /etc/postfix/main.cf

Ajoutez la ligne suivante au fichier.

transport_maps =hachage :/etc/postfix/transport

Remarque :Si vous avez utilisé iRedMail pour configurer votre serveur de messagerie, les transport_maps paramètre a d'autres valeurs. Vous devez ajouter la valeur à la fin comme ci-dessous.

transport_maps =proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf hash:/ etc/suffixe/transport

Enregistrez et fermez le fichier. Redémarrez ensuite Postfix pour que le changement prenne effet.

sudo systemctl redémarrer le suffixe

Gestion des messages rejetés via Postfix Log

Cela suppose que Mailtrain est installé sur votre serveur de messagerie.

Mailtrain est capable de détecter les messages rebondis à partir du journal de messagerie de Postfix en trouvant les lignes contenant status=bounced . Tout d'abord, vous devez activer le serveur de lecture des logs de Postfix. Modifiez le production.toml fichier.

sudo nano /var/www/mailtrain/config/production.toml

Ajoutez le texte suivant.

[postfixbounce]enabled=true

Enregistrez et fermez le fichier. Redémarrez ensuite Mailtrain pour que les modifications prennent effet.

sudo systemctl redémarre mailtrain

Maintenant, le serveur de lecture des logs de Postfix écoute sur 127.0.0.1:5699. Pour lui permettre de lire le journal de Postfix, exécutez la commande suivante.

tail -F /var/log/mail.log | nc localhost 5699 -

Pour le faire fonctionner en arrière-plan, vous pouvez créer une unité de service systemd.

sudo nano /etc/systemd/system/bouncetail.service

Ajoutez le texte suivant.

[Unit]Description=Postfix bounce notifierAfter=mailtrain.service[Service]ExecStart=/bin/sh -c '/usr/bin/tail -F /var/log/mail.log | nc localhost 5699 -'Type=simpleRestart=alwaysRestartSec=10[Install]WantedBy=multi-user.target

Enregistrez et fermez le fichier. Ensuite, démarrez ce service et activez le démarrage automatique au démarrage.

sudo systemctl start bouncetailsudo systemctl enable bouncetail

Assurez-vous de redémarrer le service bouncetail après avoir redémarré le service mailtrain. J'ai trouvé que le service de rebond provoque une utilisation élevée du processeur sur mon serveur, donc je n'utilise pas cette méthode.

Mettre à jour

Après avoir utilisé Mailtrain sur mon propre serveur pendant un certain temps, j'ai découvert qu'il s'agissait d'autres raisons qui provoquaient le rebond des e-mails. Ce qui suit sont des rebonds temporaires.

  • La boîte aux lettres du destinataire est pleine.
  • Votre adresse IP est sur une liste noire.
  • Le serveur de messagerie du destinataire est en panne ou hors ligne.

Il y a aussi un rebond dur, c'est-à-dire que l'adresse e-mail du destinataire n'existe pas. Par défaut, Mailtrain désabonne une adresse e-mail si un rebond est détecté, ce qui est bien pour un rebond dur, mais c'est une bonne idée d'autoriser plusieurs rebonds souples avant de vous désabonner de la mauvaise adresse e-mail. Vous pouvez demander au serveur de messagerie de réception de supprimer votre adresse IP de la liste noire, puis de réinscrire l'adresse e-mail associée.

Téléchargement d'images dans Mailtrain

Pour télécharger des images dans Mailtrain, vous devez installer le imagemagick emballer. Sans cela, Mailtrain risque de générer des erreurs lorsque vous téléchargez des images.

sudo apt install imagemagick

Comment insérer un formulaire d'inscription sur votre site Web

Tout d'abord, vous devez activer le partage de ressources cross-origin. Modifiez le production.toml fichier.

sudo nano /var/www/mailtrain/config/production.toml

Ajoutez la ligne suivante dans le fichier pour ajouter votre site Web à la liste blanche.

[cors]# Autoriser l'intégration des widgets d'abonnementorigins=['https://www.example.com']

Enregistrez et fermez le fichier. Redémarrez ensuite Mailtrain pour que la modification prenne effet.

sudo systemctl redémarre mailtrain

Ensuite, ajoutez le code suivant sur votre site Web pour afficher le formulaire d'inscription. Remplacez le texte en rouge par le nom de domaine Mailtrain et votre propre ID de liste.


Ajoutez ensuite des règles CSS personnalisées pour le rendre plus attrayant visuellement.

Comment créer des utilisateurs supplémentaires dans Mailtrain

Mailtrain v2 permettra à l'administrateur de créer plusieurs utilisateurs avec des autorisations utilisateur granulaires et un partage flexible. Mais avec la version actuelle v.1.24.1, vous pouvez créer des utilisateurs uniquement via la base de données. Connectez-vous à la console MySQL/MariaDB.

sudo mysql -u racine

Utilisez le mailtrain base de données.

UTILISER mailtrain ;

Créez ensuite une entrée utilisateur avec la commande SQL suivante.

INSERT INTO `users` (`username`, `password`, `email`, `access_token`, `reset_token`, `reset_expire`, `created`) VALUES ('votre-nom d'utilisateur',PASSWORD("votre- mot de passe"),'[email protected]',NULL,NULL,NULL,NOW());

Quittez le serveur de base de données.

QUITTER ;

J'ai constaté que les utilisateurs créés de cette manière ne peuvent pas se connecter à l'interface Web Mailtrain la première fois. Les utilisateurs doivent utiliser le lien "Mot de passe oublié" sur la page de connexion pour réinitialiser leur mot de passe, puis la connexion devrait fonctionner. Notez également que tous les utilisateurs disposent d'une autorisation administrative dans l'interface Web de Mailtrain.

Comment importer une liste de diffusion depuis MailChimp

Tout d'abord, vous devez vous rendre dans l'Audience onglet dans votre tableau de bord MailChimp. Cliquez sur View Contacts bouton pour afficher tous les abonnés. Cliquez ensuite sur Export Audience bouton pour exporter votre liste sous forme de fichier CSV.

Accédez ensuite au tableau de bord Mailtrain et sélectionnez votre liste de diffusion. Sélectionnez List Actions bouton déroulant et cliquez sur Import Subscribers .

Dans la page suivante, vous devrez télécharger le fichier CSV téléchargé depuis MailChimp.

Ensuite, vous devez faire correspondre les champs de MailChimp aux champs de votre liste de diffusion Mailtrain. Si certains des champs de MailChimp n'existent pas dans la liste de diffusion Mailtrain, vous pouvez les créer dans le tableau de bord Mailtrain.

Veuillez noter que si vos champs MailChimp contiennent des boutons radio, vous devez également créer des boutons radio dans les champs Mailtrain. Cependant, vous devez segmenter votre liste MailChimp en fonction de la valeur du bouton radio, puis exporter ces segments vers différents fichiers CSV et les importer dans Mailtrain un segment à la fois. En effet, Mailtrain ne fournit pas de moyen de faire correspondre les valeurs de chaque bouton radio de MailChimp.

Cron Job pour nettoyer automatiquement les adresses e-mail désabonnées

Vous pouvez supprimer manuellement les adresses e-mail désabonnées dans le panneau d'administration Web de Mailtrain, mais il est beaucoup plus efficace de les supprimer à l'aide des commandes MySQL/MariaDB, puis il vous suffit de créer une tâche Cron pour automatiser cette tâche.

Tout d'abord, connectez-vous au serveur de base de données MySQL/MariaDB.

sudo mysql -u racine

Connectez-vous ensuite à la base de données mailtrain.

utiliser mailtrain ;

Les informations des abonnés sont stockées dans le subscription les tables. Si vous avez plusieurs listes de diffusion, alors vous aurez plusieurs subscription les tables. Vous pouvez lister toutes ces tables en utilisant la commande SQL suivante.

afficher des tableaux comme 'subscription%' ;

Sortie sur mon serveur.

+--------------------------------------------------+| Tables_in_mailtrain (abonnement%) |+--------------------------------------------------+| abonnement || abonnement__1 || abonnement__2 |+------------------------------------------+

La première table est une table vide. J'ai deux listes dans Mailtrain. Ils sont stockés dans subscription__1 et subscription__2 table. Les adresses e-mail abonnées ont un code d'état défini sur 1 . Les adresses e-mail désabonnées ont un code d'état défini sur 2 . Ainsi, pour supprimer les adresses e-mail désabonnées, vous pouvez exécuter les commandes SQL suivantes.

SUPPRIMER DE l'abonnement__1 où statut ='2';SUPPRIMER DE l'abonnement__2 où statut ='2';

Pour quitter le serveur de base de données MySQL/MariaDB, exécutez

quitter ;

Ouvrez maintenant le fichier crontab de l'utilisateur root.

sudo crontab -e

Ajoutez les deux lignes suivantes.

# Supprimer les adresses e-mail désabonnées de la liste de diffusion daily@daily /usr/bin/mysql -u root mailtrain -Bse "DELETE FROM subscription__1 where status ='2';DELETE FROM subscription__2 where status ='2';" 

Enregistrez et fermez le fichier. Et vous avez terminé.

Comment exporter vos listes de diffusion dans Mailtrain

Il n'y a pas de bouton d'exportation dans le panneau d'administration de Mailtrain. Cependant, si vous avez installé phpMyAdmin sur le serveur, vous pouvez exporter vos listes de diffusion à partir de là. Sélectionnez la base de données mailtrain dans phpMyAdmin, puis sélectionnez la table qui stocke vos listes de diffusion. Dans mon cas, le subscription__1 et subscription__2 les tables stockent les informations des abonnés.

Cliquez ensuite sur export bouton pour enregistrer le tableau sous forme de fichier. Notez qu'il y a 2 boutons d'exportation. Vous devez cliquer sur le deuxième bouton d'exportation pour exporter l'intégralité du tableau. Le premier bouton d'exportation n'exportera que les enregistrements actuellement visibles dans la table.

Ensuite, vous pouvez choisir le format de fichier pour le fichier d'exportation. Enfin, cliquez sur le bouton Go.

Comment masquer la page d'accueil de Mailtrain

Si vous ne voulez pas que les visiteurs voient votre page d'accueil mailtrain, vous pouvez configurer une redirection permanente 301 pour rediriger les visiteurs vers la page d'accueil de votre site Web, en ajoutant le code suivant dans le fichier de configuration Nginx de Mailtrain.

location =/ { return 301 http://www.votre-domaine.com;}

Enregistrez et fermez le fichier. Rechargez ensuite Nginx pour que la modification prenne effet.

sudo systemctl recharger nginx

Vous devez vous souvenir de l'URL de connexion Mailtrain.

https://newsletter.votre-domaine.com/users/login

Par défaut, le bouton de connexion vous redirigera vers la page d'accueil de Mailtrain, vous devez donc vous souvenir d'une autre URL.

https://newsletter.votre-domaine.com/listes

Cela vous permet de gérer vos listes et d'autres éléments dans le tableau de bord.

Comment insérer des options sur le formulaire d'inscription

Si vous souhaitez proposer des options au visiteur sur le formulaire d'inscription, vous devez créer des champs personnalisés. Accédez à votre liste et sélectionnez custom fields dans la List Actions menu déroulant et créer un champ personnalisé.

Tout d'abord, vous devez créer un champ qui deviendra la question d'en-tête de la liste d'options. Dans Field Type , vous pouvez sélectionner le radio button (pour un choix unique) ou checkboxes (pour plusieurs choix). Dans Group , ne sélectionnez rien, car ce champ deviendra un groupe pour les options.

Créez ensuite un champ personnalisé pour chaque option. Vous devez choisir l'option option for a group value dans Field Type , et choisissez le nom de fichier personnalisé précédent dans Group .

Comment modifier le type de champ

Par défaut, l'interface Web Mailtrain ne vous permet pas de changer le type de fichier, mais vous pouvez le changer dans la base de données mailtrain. Par exemple, je dois changer un type de champ de checkboxes au radio button .

Je recommande de sauvegarder la base de données avant de modifier quoi que ce soit dans la base de données. Vous pouvez exécuter la commande suivante pour sauvegarder la base de données mailtrain.

sudo mysqldump -u root mailtrain> mailtrain.sql

Connectez-vous ensuite au serveur de base de données MariaDB.

sudo mysql -u racine

Utilisez le mailtrain base de données.

UTILISER mailtrain ;

Tous les champs personnalisés sont stockés dans le custom_fields table. Vous pouvez vérifier son contenu avec :

SELECT * FROM champs_personnalisés ;

Recherchez le champ personnalisé que vous souhaitez modifier et exécutez la commande SQL suivante pour modifier son type. Remplacez le numéro d'identification par le vôtre.

UPDATE custom_fields SET type ='radio' Où id =3 ;

Quittez le serveur de base de données.

QUITTER ;

Comment nettoyer votre liste de diffusion dans Mailtrain

Les abonnés non engagés ne vous rapporteront pas d'argent et parce qu'ils n'ouvrent pas votre e-mail, les fournisseurs de boîtes aux lettres réduiront la réputation de votre domaine. Pour vous assurer que vos futurs e-mails arriveront dans la boîte de réception, vous devez supprimer les abonnés non engagés de votre liste de diffusion.

Vous pouvez créer un segment pour les personnes qui n'ont pas ouvert votre e-mail au cours des 60 derniers jours, puis supprimer leurs adresses e-mail. La règle pour ce segment est la suivante :

RAM requise

Mailtrain peut utiliser beaucoup de RAM. Assurez-vous que votre serveur dispose d'au moins 1 Go de RAM libre. Par exemple, si l'utilisation actuelle de la RAM est de 4 Go, la RAM totale doit être d'au moins 5 Go. Si la RAM est épuisée, les e-mails dans Mailtrain peuvent être rejetés.


Ubuntu
  1. Comment installer Docker sur Ubuntu 18.04

  2. Installer le serveur SSH Ubuntu 22.04

  3. Comment installer Docker sur Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  4. Installer le serveur 18.04 sans connexion réseau ?

  5. Comment installer Ubuntu Server sans connexion réseau ?

Comment installer Plex Media Server sur un serveur/bureau Ubuntu 16.04

Installez l'application de newsletter auto-hébergée Mailtrain sur le serveur Ubuntu 16.04

Comment installer Mailtrain sur Ubuntu 18.04 avec Docker

Installer le logiciel Discourse Forum sur Ubuntu 18.04 sans Docker

Comment installer le serveur Bitwarden sur Ubuntu 20.04 | 22.04 LTS via docker

Comment installer Docker sur Ubuntu 14.04