
Mail-Attitude est un site que j'ai réalisé en alternance avec
l'entreprise Software-Attitude, filiale technique de Hardware-Attitude.
Cette filiale réalise de nombreux sites
complets pour des clients. Mail-Attitude a pour vocation de permettre à
ces derniers de posséder un système de newsletters livré en même temps
que leur site dans le packaging.
Ce site offre plusieurs fonctionnalités au client :
- Gestion de campagnes (création, modification, suppression)
- Création de newsletters
- Création de contacts
- Gestion contacts / listes diffusion
- Test d'envoi des newsletters
- Planification de l'envoi réel des newsletters
-
Statistiques avancées pour le client
Le client peut donc facilement administrer ses différentes campagnes et
newsletters, créer son carnet d'adresse afin de remplir des listes de
diffusion à qui il enverra ses news.
Lors de la création de sa newsletters, le client met en forme son mail
à l'aide d'un BBCode, il peut également générer des champs dynamiques
qui seront remplacées par les infos respectives à chaque destinataire
au moment de l'envoi.
Dés lors, il peut choisir les listes de diffusion auxquelles il veut envoyer sa newsletters et planifier la date d'envoi.
Sur le serveur tournent plusieurs crontab qui se chargent d'appeler des scripts PHP aux moments voulus (la nuit).
- Un
1er script se charge de regarder tous les mails en attente, de se
connecter à un serveur SMTP distant, et ce de manière synchronisée,
puis de parser dynamiquement le contenu des mails, et enfin de mettre à
jour les statistiques.
- Un 2e script se charge de se
connecter à un serveur POP sur une messagerie dédiée pour les mails en
erreur, de les déplacer sur le serveur puis de les supprimer.
- Un
3e script analyse un par un les mails en erreur qui ont été déplacés,
tente de récupérer dans les en-têtes les infos plaçées au moment de
l'envoi afin d'identifier le destinataire en erreur. Si aucun
destinataire n'est trouvé, le script se fie au diagnostic-code contenu
dans le mail pour mettre à jour les statistiques.
Les statistiques est une des parties très avancées du projet. Le client
peut quasiment tout savoir sur ses newsletters (cf listes ci-dessus).
C'est l'étendue des possibilités au niveau statistiques qui lui confère sa puissance.
Quelques astuces en vrac :
- Pour
connaitre les dates d'ouvertures des mails, dans la newsletters est
contenue une image d'1px transparente qui est générée par un script
PHP. C'est ce script qui met à jour les statistiques au moment de la
lecture des mails (avec l'ID en paramètre)
- Pour ce qui
est des clics, les URL sont modifiées à la volée au moment de l'envoi
des mails pour pointer sur un script PHP. Ce script met à jour les
stats puis redirige de manière transparente le destinataire sur la page
de son choix.
- Pour les erreurs, le script lancé par le 3e crontab s'en charge.
- Des pages dédiés à l'inscription et la désinscription mettent également à jour les stats.
- Le reste des statistiques coulent de source
Ce projet fut très enrichissant d'un point de vue humain comme professionnel.
C'était la 1ère fois que j'étais amené à faire du PHP en entreprise !!
J'ai appris à dialoguer avec un serveur pop et un serveur smtp, j'ai
également bien galeré avec les statistiques ou les regex mais au final
cela fut une très bonne expérience avec une équipe jeune, sympathique,
dynamique... Que demande le peuple :)