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.