Installation de PHPList
Cette page décrit la manière d'installation de PHPListe sur uune distribution linux SME Server.
PHPList est un portail web permettant le “publipostage”. Cela consiste à envoyer massivement des e-mails à une liste d'abonnées.
Procédure
Téléchargez l'archive sur le site de PHPList
wget http://puzzle.dl.sourceforge.net/project/phplist/phplist/2.10.12/phplist-2.10.12.tgz
Décompressez le fichier et déplacez le répertoire public_html dans le répertoire web de apache
tar xvf phplist-2.10.12.tgz mv public_html/ /opt/phplist
Création de la base de données "phplistdb"
CREATE DATABASE `phplistdb` ;
On donne les droits nécessaires à l'utilisateur
GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , FILE , INDEX , ALTER , CREATE TEMPORARY TABLES , CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON phplistdb.* TO 'phplist'@'localhost' identified by 'your_password'
A cet instant, nous avons un user “phplist” qui possède uniquement des droits sur la base “phplistdb”.
Configuration de phplist
Dans le fichier de configuration list/config/config.php, renseignez les informations suivantes :
$database_name = "phplistdb"; $database_user = "phplist"; $database_password = "your_password"; define ("TEST",0);
Création d'un template custom dans SME, pour créer un alias PHPList
Créer un fichier de template custom dans le répertoire /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf :
vim /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/87PHPListAlias
# PhpList Alias Alias /phplist /opt/phplist <Directory /opt/phplist> # SSLRequireSSL Options -Indexes AllowOverride None order deny,allow { my $access = 'public'; if ("$access" eq "private") { $OUT .= " allow from $localAccess $externalSSLAccess"; } elsif ("$access" eq "public") { $OUT .= " allow from all"; } } AuthName "phplist" AuthType Basic AuthExternal pwauth require user admin Satisfy all AddType application/x-httpd-php .php .php3 </Directory>
La page d'administration de PHPList est accessible par cette url : http://<host>/phplist/lists/admin/
Configuration et Sécurité
Création d'un utilisateur "bounce"
Pour le bon fonctionnement de PHPList, il faut une boîte mail bounce@domain.tld.
Pour cela, dans SME, creez un utilisateur “bounce”.
A partir de cet instant, s'assurer que le pop3 soit activé en local minimum, afin que PHPList puisse lister checker cette boîte mail.
Configuration de l'user bounce dans config.php
Modifier le fichier de configuration comme ceci :
# Handling bounces. Check README.bounces for more info # This can be 'pop' or 'mbox' $bounce_protocol = 'pop'; # set this to 0, if you set up a cron to download bounces regularly by using the # commandline option. If this is 0, users cannot run the page from the web # frontend. Read README.commandline to find out how to set it up on the # commandline define ("MANUALLY_PROCESS_BOUNCES",1); # when the protocol is pop, specify these three $bounce_mailbox_host = 'localhost'; $bounce_mailbox_user = 'bounce@pi3rrot.tk'; $bounce_mailbox_password = 'Bounce33;'; $message_enveloppe = 'bounce@pi3rrot.tk'; # the "port" is the remote port of the connection to retrieve the emails # the default should be fine but if it doesn't work, you can try the second # one. To do that, add a # before the first line and take off the one before the # second line #$bounce_mailbox_port = "993/imap/ssl"; //changement manuel $bounce_mailbox_port = "110/pop3";
Désactiver l'authentification intégrée à PHPList
Nous allons utiliser l'authentification de Apache en Basic pour accèder à la page d'administration de PHPList
Il faut modififier dans le fichier config.php :
# set this to 1 if you want PHPlist to deal with login for the administrative # section of the system # you will be able to add administrators who control their own lists # default login is "admin" with password "phplist" # $require_login = 0
Permettre l'envoi directe de messages en attente
Il est possible de planifier l'envoi d'un message à une liste, où de choisir de tout envoyer par la fonction “Traitement de la file d'attente”.
Cette fonction envoie tout les messages, sans se soucier de la date à laquelle elle à été programmé.
# If you set up your system to send the message automatically, you can set this value # to 0, so "Process Queue" will disappear from the site # this will also stop users from loading the page on the web frontend, so you will # have to make sure that you run the queue from the commandline # check README.commandline how to do this define ("MANUALLY_PROCESS_QUEUE",1);