Outils personnels

PHPList : installation mailing-lists

De wikiGite

Charger PHPList

wget http://downloads.sourceforge.net/project/phplist/phplist/2.10.14/phplist-2.10.14.tgz

Décompresser

tar -xvzf phplist-2.10.14.tgz

Copier le sous-répertoire "lists" (sous public_html) dans le futur répertoire DocumentRoot du virtualhost créé pour PHPList

mkdir /var/www/phplist
mv /<chemin vers>/phplist-2.10.14/public_html/lists /var/www/phplist

Créer un virtualhost dans apache (ex. sur Debian : /etc/apache2/sites-enabled/002-phplist)

<VirtualHost 10.0.0.43:80>
 ServerName phplist.systea.net
 DocumentRoot /var/www/phplist
</VirtualHost>

Note : il est important de conserver le sous-répertoire "lists" sous DocumentRoot, certaines pages de PHPList y font référence en dur !!!

Editer /var/www/phplist/lists/config/config.php. Modifier les informations MySQL :

# what is your Mysql database server
$database_host = "localhost";
# what is the name of the database we are using
$database_name = "phplistdb";
# who do we log in as?
$database_user = "phplist";
# and what password do we use
$database_password = 'password_mysql';

L'adresse de retour des mails en erreur (ou retours out-of-office)

$message_envelope = 'bounce@systea.fr';

Si ce mail est sur un autre serveur (pas en local en mbox), il faut que PHPList y accède en POP pour récupérer les mails en retour et les traiter

$bounce_protocol = 'pop';
$bounce_mailbox_host = 'mail.domain.com';
$bounce_mailbox_user = 'bounces';
$bounce_mailbox_password = 'password_bounce';

Vitesse d'envoi : combien de mails par période ? Si MAILQUEUE_BATCH_SIZE=0, les mails sont evoyés aussi vite que possible. Ici, on envoit 1000 mails par heure, avec 1 seconde entre chaque mails :

define("MAILQUEUE_BATCH_SIZE",1000);
define("MAILQUEUE_BATCH_PERIOD",3600);
define('MAILQUEUE_THROTTLE',1);

Ajouter un filtre par domaine (nombre max de mail envoyés à un même domaine par période) pour éviter d'être spammé. Dans l'exemple, envoie 10 mails d'un même domaines toutes les 2 heures.

define('USE_DOMAIN_THROTTLE',1);
define('DOMAIN_BATCH_SIZE',10);
define('DOMAIN_BATCH_PERIOD',120);

Paramétrer le language (voir dans le sous-répertoire "texts"):

$language_module = "french_utf8.inc";

Un peu de sécurité (les autres paramètres sécurité peuvent être laissés par défaut)

$check_for_host = 1;

En laissant "define ("TEST",1);" PHPList n'envoie rien mais affiche ce qu'il aurait du faire. De même en phase de test mettre "define ("VERBOSE",1);" pour qu'il affiche le contenu du mail.

Dans un navigateur aller sur <URL de PHPList>/lists/admin. Si la base est vide, il propose de l'initialiser. Puis continuer l'installation, en se connectant en admin/phplist, suivre les "tâches restant à faire" à l'URL http://<URL PHPList>/lists/admin/'''?page=setup'''.

Il reste à tester tout ça, notamment, vérifier que les "bounce" (les retours en erreurs) sont bien enregistrés, que le mail est désactivé (passé en "non-confirmé" en fait, ce qui fait que PHPList ne lui envoie plus rien) au bout de 5 retours en erreur.