Identifiants personnels


Moi ... Moi ... et re Moi
« [SPIP Plugin] XSPF plugin   Informatique  [Serveur] Monitoring de (...) »

[SERVEUR] Sympa + Postfix + Ubuntu

samedi 22 décembre 2007, modifié le 24 février 2009, par Quentin Drouet

Sympa is an open source (GNU GPL) mailing list software. Its name is an acronym for Systeme de Multi-Postage Automatique (i.e. Automatic Mailing System in French language).

Data is stored in a relational database such as MySQL, PostgreSQL, or Oracle.

This can be highly configurable with multiple list single subscription, Mail to List etc.

L’idée de base :

  • Dans notre service d’hébergement, permettre pour chaque domaine hébergé de disposer d’un gestionnaire de mailing lists.
  • Ce gestionnaire doit pouvoir être accessible facilement dans un sous domaine du type : lists.mondomaine.tld
  • Chaque propriétaire de nom de domaine doit être également propriétaire de son interface de gestion de liste et pouvoir créer des listes...

Rappel : L’environnement d’installation est celui-ci :

  • Système d’exploitation : Ubuntu 8.10 Intrepid Ibex
  • Serveur Web : Apache version 2.2.9
  • PHP : 5.2.6
  • Mysql : 5.0.67
  • Perl : 5.10.0

Il se peut donc que certaines commandes Unix utilisées ne soient pas compatibles avec d’autres distributions. Vous pouvez laisser un message en bas de cet article pour toutes questions.

Installation de sympa

  1. # Téléchargement des sources
  2. wget http://www.sympa.org/distribution/sympa-5.4.6.tar.gz
  3. # Décompression du paquet
  4. tar -xvzf sympa-5.4.6.tar.gz
  5. # On va dans le répertoire qui contient les sources
  6. cd sympa-5.4.6/
  7. # Il est nécessaire d ajouter un utilisateur "sympa" ce qui créera également un dossier "/home/sympa"
  8. sudo adduser sympa
  9. # Installation préalable de quelques paquets nécessaires
  10. sudo apt-get install gettext zip unzip lynx ncftp libintl-perl libfcgi-perl libxml2-dev libappconfig-perl perl-suid libapache2-mod-fastcgi
  11. # Configurer l installateur
  12. ./configure
  13. # Compiler sympa
  14. sudo make

Normalement, sympa va vous demander d’installer les modules perl par cpan... Laissez les options par défaut et validez jusqu’à la fin.

A la fin de cette compilation il se peut que sympa vous dise qu’il manque des locales d’installées sur votre système. Pour régler les problèmes de locales vous pouvez suivre cet article puis relancer la compilation par "make"

Finir l’installation

  1. sudo make install

Le programme d’installation va vous poser plusieurs questions...

Laissez les valeurs par défaut en général.

A la question : Sympa will associate listmaster privileges to these email addresses (mail and web interfaces). Some error reports may also be sent to these addresses. listmaster : Listmasters email list comma separated, indiquez le mail de la personne qui sera listmaster général.

Configuration de sympa pour la gestion d’un sous domaine pour les différents sous domaines

Sympa gère le multidomaine grace aux fichiers "robot.conf"

Prenons le cas de deux domaines distincts : lists.arscenic.org et lists.reflet-web.net (Toute référence à ces domaines devra être modifié en conséquence pour vos configurations).

lists.arscenic.org est le domaine principal du serveur de listes... reflet-web.net sera un robot secondaire.

Faire pointer les dns vers le serveur

Les zones DNS du nom de domaine doivent être configurées de la sorte :

  • Chaque sous domaine lists.arscenic.org et lists.reflet-web.net doit être défini par un MX (Mail Exchanger record) afin de router les messages vers le serveur.
  • Ces mêmes sous domaines doivent être définis comme "Hote" (A record) ou "alias" (CNAME) pour rediriger correctement vers les serveur mail.

Configurer Apache et créer les virtualhosts nécessaires

Ajouter ceci :

  1. AddDefaultCharset utf-8

dans /etc/apache2/apache2.conf afin d’éviter tout problème d’accent dans l’interface graphique

Activer le module fastcgi d’Apache :

  1. a2enmode fastcgi
  2. # Créer un fichier spécifique de définition des sites pour sympa
  3. nano /etc/apache2/sites-available/sympa.conf
  4. #Activer le virtualhost sympa
  5. a2ensite sympa.conf
  6. #redémarrer le serveur apache
  7. /etc/init.d/apache2 restart

On a décidé de mettre l’ensemble des configurations des virtualhosts de sympa dans le même fichier (/etc/apache2/sites-available/sympa). Il ressemble à ceci :

  1. <VirtualHost 88.191.25.106:80>
  2.         ServerName lists.arscenic.org
  3.         ServerAdmin listes@arscenic.org
  4.         ScriptAlias /sympa /home/sympa/bin/wwsympa-wrapper.fcgi
  5.         DirectoryIndex sympa/
  6.         DocumentRoot /var/www/virtual/arscenic.org/sympa/
  7.         <Location /sympa>
  8.                 SetHandler fastcgi-script
  9.         </Location>
  10.         Alias /wwsicons /usr/share/sympa/icons
  11.         Alias /static-sympa /home/sympa/static_content
  12. </VirtualHost>
  13. <VirtualHost 88.191.25.106:80>
  14.         ServerName lists.reflet-web.net
  15.         ServerAdmin quentin@arscenic.org
  16.         ScriptAlias /sympa /home/sympa/bin/wwsympa-wrapper.fcgi
  17.         DirectoryIndex sympa/
  18.         DocumentRoot /var/www/virtual/lists.reflet-web.net/htdocs/
  19.         <Location /sympa>
  20.                 SetHandler fastcgi-script
  21.         </Location>
  22.         Alias /wwsicons /usr/share/sympa/icons
  23.         Alias /static-sympa /home/sympa/static_content
  24. </VirtualHost>

Pour activer les virtualhosts il suffit alors de faire :

  1. a2ensite sympa
  2. /etc/init.d/apache2 force-reload

Créer les répertoires et fichiers de configuration nécessaires

NB : sympa est installé dans le répertoire home de sympa donc "/home/sympa"

Pour chaque robot, il est nécessaire de créer ses propres répertoires et fichiers de configuration.

  1. su sympa -c 'mkdir /home/sympa/expl/lists.reflet-web.net'
  2. chmod 750 /home/sympa/expl/lists.reflet-web.net

Ce répertoire contiendra l’ensemble des mailing lists liées à ce domaine.

Puis :

  1. su sympa -c 'mkdir /home/sympa/etc/lists.reflet-web.net'
  2. chmod 750 /home/sympa/etc/lists.reflet-web.net

Ce répertoire contiendra le fichier de configuration spécifique à ce domaine.

Dans ce répertoire, on crée donc un fichier robot.conf qui ressemble au fichier de configuration sympa.conf.

  1. nano /home/sympa/etc/lists.reflet-web.net/robot.conf

On remplit ce nouveau fichier comme suit :

  1. http_host       lists.reflet-web.net
  2. host            lists.reflet-web.net
  3. wwsympa_url     http://lists.reflet-web.net/sympa
  4. cookie_domain   localhost
  5. listmaster      quentin@arscenic.org
  6. create_list     listmaster
  7. default_home    home
  8. title           Reflet Mailing lists

On lui donne les bons droits :

  1. chown -R sympa:sympa /home/sympa/etc/lists.reflet-web.net/robot.conf

Ces opérations doivent être répétées pour chaque robot et à chaque fois qu’un nouveau robot sera ajouté.

Configurer Postfix

Dorénavant, on a besoin de régler le fait que les mails destinés aux mailing lists soient redirigés vers le robot de sympa.

Dans le fichier /etc/aliases, vous devez ajouter ces lignes :

  1. listmaster: "| /home/sympa/bin/queue listmaster@lists.arscenic.org"
  2. bounce+*: "| /home/sympa/bin/bouncequeue sympa@lists.arscenic.org"
  3. abuse-feedback-report: "| /home/sympa/bin/bouncequeue sympa@lists.arscenic.org"
  4. sympa: "| /home/sympa/bin/queue sympa@lists.arscenic.org"

Note : lists.arscenic.org a été configuré comme robot par défaut dans la configuration de sympa.

Créer un fichier /etc/mail/sympa_transport_regexp contenant pour chaque robot ces deux lignes :

en les modifiant en fonction des robots bien entendu.

Dans le ficher /etc/postfix/main.cf, rajoutez ces lignes :

  1. relay_domains = $mydestination, lists.reflet-web.net, lists.arscenic.org
  2. recipient_delimiter = +
  3. sympa_destination_recipient_limit = 1
  4. sympabounce_destination_recipient_limit = 1
  5. transport_maps = regexp:/etc/mail/sympa_transport_regexp

NB : Si la ligne relay_domains existe déjà dans votre configuration, il vous suffit de rajouter les robots séparés par des vigules.

et modifier la ligne qui doit être :

  1. alias_maps = hash:/etc/aliases

en :

  1. alias_maps = hash:/etc/aliases,hash:/etc/mail/sympa_aliases

À chaque création de liste, sympa ajoutera automatiquement dans le fichier /etc/mail/sympa_aliases les différents alias de mails pour chaque liste.

Dans le fichier /etc/postfix/master.cf, rajoutez ces lignes :

  1. sympa     unix  -       n       n       -       -       pipe
  2.   flags=R user=sympa argv=/home/sympa/bin/queue ${recipient}
  3. sympabounce unix   -       n       n       -       -       pipe
  4.   flags=R user=sympa argv=/home/sympa/bin/bouncequeue ${recipient}

Puis exécutez ces quatre commandes :

  1. sudo postmap /etc/mail/sympa_transport_regexp
  2. sudo postalias /etc/aliases
  3. sudo postalias /etc/mail/sympa_aliases
  4. /etc/init.d/postfix restart

Démarrer sympa

Sur Ubuntu les scripts de démarrage se trouvent dans

/etc/init.d/

puis sont disponible pour chaque runlevel dans /etc/rcX.d/ où X est le numero du runlevel dans lequel on est. Sympa quand à lui place le script de démarrage dans

/etc/rc.d/init.d/

On y remédie en faisant :

  1. # Déplacement du script de démarrage
  2. mv /etc/rc.d/init.d/sympa /etc/init.d/sympa
  3. #On le rend exécutable des fois qu'il ne le soit pas
  4. chmod +x /etc/init.d/sympa
  5. #On l'ajoute dans chaque runlevel pour le lancer au démarrage du système
  6. update-rc.d sympa defaults

Il est nécessaire que sympa soit lancé après Apache au démarrage... Pour en être sur il faut d’abord savoir dans quel runlevel on est... Pour ce faire il suffit de lancer la commande :

  1. runlevel

.

Ensuit il faut vérifier si le script de sympa qui se situe dans /etc/rcX.d/ (il commence par un S puis deux chffres puis sympa) soit lancé après apache, c’est à dire que son nombre soit supérieur à celui du script d’Apache.

Enfin il est nécessaire de lancer ces quelques commandes

  1. # Ce répertoire où sympa dépose ses locks n'existe pas sur ubuntu donc on le crée manuellement
  2. sudo mkdir /var/lock/subsys
  3. # On donne les droits à sympa sur ce dossier
  4. sudo chown sympa:sympa /var/lock/subsys/
  5. # On peut enfin démarrer le service sympa
  6. /etc/init.d/sympa start

Sympa sera ensuite démarré à chaque redémarrage du serveur.

Ajout d’un simple robot à une configuration existante

Lorsque vous souhaiterez ensuite rajouter un robot, il faudra refaire les parties :

  • Création des répertoires pour le robot dans le /home/ de sympa
  • Copier et modifier un des fichiers robot.conf
  • Ajouter le virtualhost dans le fichier /etc/apache2/sites-available/sympa
  • Ajouter deux lignes dans le fichier /etc/mail/sympa_transport_regexp
  • Ajouter le nouveau domaine dans la ligne relay_domains du fichier /etc/postfix/main.cf
  • Redémarrer les trois serveurs : Apache / Postfix / Sympa

    Articles liés :

Liens externes

Répondre à cet article


Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Lien hypertexte (optionnel)

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d'informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Ajouter un document
Qui êtes-vous ? (optionnel)
Connexion


Propulsé par : SPIP 2.1.0 dev SVN [13946]