ezmlm: installation et configuration sous Ubuntu ou Debian

Dans ce billet je vais decrire la mise en place du gestionnaire de mailing-list ezmlm-idx sur une distribution Linux (Ubuntu dans mon cas mais ce tutorial peut etre utilisé sous n’importe que *nix puisque l’on va partir des sources.)

On va considérer dans ce billet que vous avez une installation fonctionnelle de qmail + vpopmail sur votre serveur.
Si ce n’est pas le cas, reportez vous aux billets:

ezmlm-idx est une version « améliorée » du gestionaire de mailing-list créé par DJB. Il va donc nous falloir récuperer les sources de ezmlm puis les sources de ezmlm-idx, mélanger les premières avec les secondes et hop.
Ca ne vous semble pas clair ? Alors passons à la pratique pour faire la lumiere.

Récupération des sources

On va télécharger les sources de ezmlm depuis le site officiel de DJB:

cd /usr/local/src
wget http://cr.yp.to/software/ezmlm-0.53.tar.gz
tar zxvf  ezmlm-0.53.tar.gz

On va ensuite récuperer les sources de ezmlm-idx:

wget http://www.ezmlm.org/archive/7.0.2/ezmlm-idx-7.0.2.tar.gz
tar zxvf  ezmlm-idx-7.0.2.tar.gz

Compilation

On va commencer par ezmlm:

cd ezmlm-0.53
make

Et la c’est le drame !!!
Vous allez avoir ce joli message à l’issue du make :

./load auto-str substdio.a error.a str.a
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in substdio.a(substdo.o)
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit s

Allons on ne panique pas, le code de DJB commence a dater, on va devoir bricoler un peu:

echo gcc -O2 -include /usr/include/errno.h > conf-cc
echo cc -m32 -O2 -include /usr/include/errno.h >> conf-cc
echo cc -m32 > conf-ld

Il faut aussi editer les fichiers ezmlm-return.c et ezmlm-manage.c pour y ajouter un include:

#include “log.h”

Si ça ne vous cause pas tout ça, mettez simplement cette ligne en tete des deux fichiers ;)

Et on peu recommencer et terminer la compilation de ezmlm:

make
make man
make setup

On passe a présent a ezlml-idx:

cd ../ezmlm-idx
make
make man

On va faire une petite pause a ce niveau pour tester l’ensemble, ezmlm-idx propose un petit binaire pour tester que tout fonctionne comme il se doit:

./ezmlm-test
ezmlm-make:           OK
Using subdb plugin:   std
ezmlm-reject:         OK
ezmlm-[un|is]sub[n]:  OK
ezmlm-checksub:       OK
ezmlm-send:           OK
ezmlm-tstdig:         OK
ezmlm-weed:           OK
.
.

Si tout est OK il ne vous reste plus qu’a déployer les binaires:

make setup

Et voila !

Exemple de configuration pour une newsletter

ezmlm est un gestionnaire de mailing-list mais il peut très bien être utilisé pour gérer l’envoi de newsletter.
La singularité d’une newsletter est que seuls les modérateurs peuvent poster un message, il nous faudra donc utiliser les flag m et o lors de la création de la liste.

On va donc créer une liste newsletter@ :

  • Sur le domaine lists.domaine.com (préalablement créer via vpopmail->vadddomain).
  • Ayant les options de modération faisant que seuls les modérateurs puissent poster (om)
  • Ayant le nom de la newsletter comme prefixe dans le sujet (-f)
  • Ou seul les abonnés auront accès aux archives (-g)

On va considéré que le repertoire vpopmail – ou sont stocké les comptes du domaine – est : /home/vpopmail/domains/lists.domain.com, la commande pour créer cette liste va donc etre:

./ezmlm-make -o -m -f -g /home/vpopmail/domains/lists.domain.com /home/vpopmail/domains/lists.domain.com/.qmail-newsletter newsletter lists.domain.com

On va ensuite définir le modérateur/redacteur,  en considérant que son adresse mail est : moderateur @ domain.com

./ezmlm-sub /home/vpopmail/domains/domain.com/newsletter mod moderateur @ domain.com

On va ajouter les abonnés moderateur @ domain.com et toorop @ toorop.fr à cette liste:

./ezmlm-sub /home/vpopmail/domains/lists.domain.com/newsletter/ moderateur @ domain.com 
./ezmlm-sub /home/vpopmail/domains/lists.domain.com/newsletter/ toorop @ toorop.fr

Voila, la liste est prete a etre utilisée, si vous avez besoinde plus de détails quand a la configuration d’une mailing-list et des outils qui permettent de la gérer je vous renvois sur les manpages correspondantes. Si vous préférez la consultation en ligne c’est par ICI.

Partagez cet article

Vpopmail on Ubuntu

Cet article fait suite au précédent concernant l’installation de qmail, je vais donc considérer que vous avez une installation de qmail fonctionnelle avant de commencer l’installation de vpopmail.

vpopmail permet de gérer simplement les domaines virtuels sur un serveur mail. Meme si vous ne comptez pas utiliser de doamines virtuels sur votre serveur mail, il peut être intéressant d’installer vpopmail pour profiter des facilités d’administration qu’il procure.

Comme pour l’installation de qmail on va partir des sources, configurer, compiler et installer.

On va avoir besoin des libs libdev

apt-get install libev3 libev-dev

Obtention du code source

vpomail est développé par Inter7, je vous conseille d’aller faire un petit tour sur le site pour lire un peu de doc ;)

On télécharge les sources:

cd /usr/local/src;
wget http://downloads.sourceforge.net/project/vpopmail/vpopmail-devel/5.5.0/vpopmail-5.5.0.tar.bz2?use_mirror=ovh;

On décompresse:

bzip2 -d vpopmail-5.5.0.tar.bz2;
tar xpf vpopmail-5.5.0.tar;
cd vpopmail-5.5.0;

Configuration et compilation

Avant toute chose, il faut créer les utilisateurs qui vont gérer vpomail:

groupadd vchkpw;
useradd -g vchkpw vpopmail;

Comme vous pourrez le constater en consultant la doc, vpomail supporte beaucoup d’option pour le ./configure.
Dans le cas présent, je vais utiliser les option suivantes:

  • –enable-qmail-ext: permet d’activer les extension qmail
  • –enable-clear-passwd : permet de faire des authentification de type PLAIN

C’est tout, je n’active pas le roaming-user qui permet d’utiliser popbeforesmtp comme authentification SMTP car il est préférable d’utiliser SMTPAUTH.

./configure --enable-qmail-ext --enable-clear-passwd;
make;
make install-strip;

Il nous faut a présent compiler et installer le module d’authentification, enfin plus exactement on doit définir quel backend va être utilisé pour stocker les éléments d’identification des comptes locaux.
Les options possibles sont: mysql, LDAPD, postgres, Oracle, Sybase et CDB. Dans mon cas, je vais faire simple et efficace (ce qui est en général gage de fiabilité) en utilisant CDB.
CDB est un systeme de stockage de paires clefs->valeurs developpé par notre amis DJB.

Dans l’arborescence des sources vous trouverez un répertoire backends qui contient les différents modules. En fonction de votre besoin, il vous suffit de vous rendre dans le repertoire correspondant, configurer, compiler et installer:

cd backends/cdb;
./configure;
make;
make install;

Il nous faut installer le script RC qui va gerer le deamon vusaged qui va permettre de recuperer les quota de façon « optimisé »::

cp /usr/local/src/vpopmail-5.5.0/vusaged/contrib/rc.vusaged /etc/init.d/vusaged;
update-rc.d vusaged defaults

Si tout c’est bien passé, vpopmail est installé.

Bin oui c’est tout ;)

Concernant la documentation des divers binaires proposés par vpopmail, vous avez toute la documentation nécessaire ici

A suivre: installation d’un gestionnaire de mailing-list: ezmlm

Partagez cet article

WordPress Mail SMTP: Plugin permettant d’utiliser smtp

Ce blog tourne sous wordpress et est hébergé sur un cloud OVH. Une des particularités du cloud OVH est que le port 25 (smtp) est bloqué en sortie. Ça se justifie dans la mesure ou pour 1 centime d’euro par heure ce serait une très bonne affaire pour les spammeurs – surtout que l’on peut changer d’IP en quelques secondes. Malheureusement cette politique n’est pas sans conséquencse pour les utilisateurs légitimes puisqu’ils ne pourront pas envoyer directement des mails depuis leur cloud.

Il y à plusieurs techniques pour contourner cette limitation, mais la base est toujours la même: contourner le port 25. Dans le cas de ce blog on n’a pas besoin de quelque chose de trop évolué dans la mesure ou il ne va y avoir qu’un utilisateur qui va envoyer des mail sur ce serveur c’est le gestionnaire de ce blog. Donc on va simplement créér un compte mail sur un serveur mail externe, puis utiliser ce compte pour envoyer les mails via le port smtp 587.

J’en vois quelque uns qui se disent: mais c’est quoi ce port pour le SMTP !?
Pour les plus courageux, je vous invite à lire la RFC correspondante: RFC 2476, mais comme je sais que vous n’avez pas que ça a faire sachez que c’est tout simplement un port SMTP réservé à la soumissions de messages (étonnant non ?). Quand vous voulez envoyer un message, habituellement vous utilisez le port 25, le problème c’est que ce port est aussi le port standard pour transmettre/relayer les mails entre relais SMTP ce qui fait que si ce port est ouvert sur un serveur ou un poste de travail il peut être utilisé pour contacter des tonnes de SMTP cibles et leur transmettre du spam. Le port SMTP 587 lui ne peut être utilisé que pour soumettre un mail, ce qui veut dire que normalement, vous ne pourrez pas lui transmettre de mails si vous n’avez pas l’autorisation explicite de relayer via ce serveur (généralement via SMTP AUTH).

Bon c’est bien beau tout ça mais le problème c’est que par défaut on ne peut configurer wordpress pour qu’il utilise SMTP plutôt que la fonction mail() de PHP pour envoyer des messages.
Par défaut non, mais en cherchant un peu il semblerait qu’un plugin fasse l’affaire:  WP Mail

Passons à la pratique:

Création du compte mail

Il faut en premier temps créer un compte mail sur un serveur externe qui supporte smtpauth et qui écoute sur le port 587.
Pour ma part, grande surprise, j’utilise qmail associé a vpopmail, il me suffit donc d’utiliser la commande vpopmail vadduser pour ajouter un nouveau compte:

# vadduser wp@toorop.fr passwd

Installation du plugin WP Mail

Rien de bien sorcier puisqu’il suffit de télécharger l’archive et la décompresser dans le repertoire plugin de WordPress.
Pensez à adapter vos chemins si ils ne correspondent pas:

$ cd /var/www/wp-content/plugins/
$ wget http://downloads.wordpress.org/plugin/wp-mail-smtp.0.8.6.zip
$ unzip wp-mail-smtp.0.8.6.zip
$ rm wp-mail-smtp.0.8.6.zip

Voila c’est fait

Configuration du plugin WP MAIL

Pour configurer les paramètres SMTP de ce plugin, il vous faut vous rendre dans l’interface d’administration du site, commencer par activer l’extension via le menu « Extensions ».
Vous verrez ensuite une nouvelle entré « Mail’ dans le menu « Réglages », c’est ici que ça ce passe.

On va donc devoir configurer les champs:

  • From email: C’est l’adresse mail d’expéditeur utilisée. Dans mon cas je vais utiliser mon adresse mails, ainsi toutes les réponses seront transmises a mon adresse habituelle, je n’aurais pas besoin de configurer le compte wp@ sur mon client de messagerie.
  • From name: c’est le nom qui va être utilisé la aussi dans le mail from. Mettez ce que vous voulez.
  • Mailer: puisque l’on à installé ce plugin pour utiliser SMTP au lieu de la fonction mail(), il faut donc selectionner l’option « Send all WordPress emails via SMTP« .
  • SMTP Host: C’est la qu’il faut indiquer quel est le serveur SMTP que l’on va utiliser. Vous pouvez mettre le nom d’hôte ou l’adresse IP.
  • SMTP Port: le port à utiliser pour contacter le serveur SMTP, on va donc mettre 587.
  • Encryption: si votre serveur SMTP supporte TLS ou SSL je vous conseil fortement d’activer cette option.
  • Authentification: On selectionne « 

On sauvegarde la configuration en cliquant sur « Update Options« .

Pour vérifier que tout est fonctionnel, vous trouverez en bas de page un module permettant d’envoyer un mail de test avec une sortie de debug très utile en cas de problèmes.

Et voila !

Partagez cet article