Bloquer ou journaliser l’envoi de courriels depuis un site PHP

✨Que c’est beau tous ces sites qui continuent leurs vies tout seuls après notre passage et se mettent à interagir et parler à tout plein de gens !✨

Oui, sauf que… WordPress faut pas que t’écrive un mail à mon client pour lui dire « Votre site connaît un problème technique ! » quand j’ai fait une sauvegarde un peu trop rapide d’un code en cours de travail, parce que c’est juste normal que ton code s’arrête avant la fin. Oui d’accord Laravel, un précédent développement t’a intégré un code pour faire des notifications aux utilisateurs de l’application web, mais tu va pas inviter des dizaines de personnes à venir sur une version test. Quand à toi, c’est pas le moment de faire de l’email marketing pour l’instant, on essaie juste de faire tes mises à jour majeures Prestashop.

Mais ?! Oh mon dieu !! C’est au pluriel ! Quelle affreuse combinaison dactylographiée ais-je engendré ! Abomination !!!

Mises à jour majeures...
Prestashop...

Et si vous travaillez dans une agence de marketing digital ou que vous êtes web designer ou développeur indépendant, vous avez peut être déjà eu ce cas d’un site qui parle un peu trop ? Alors dans votre pensée, il s’est certainement passé quelque chose comme:

Donc voici une solution que j’utilise systématiquement et qui vous permettra de bloquer ces courriels involontaires et/ou de les enregistrer si vous le souhaitez.

Parce que oui si vous avez besoin d’observer les envois de courriels pour vérifier le bon fonctionnement de votre site en production, là j’ai aussi quelque chose pour vous.

Pour cela nous allons modifier les paramètres php pour le site de cette façon:

Bloquer et journaliser

sendmail_path="/usr/bin/cat - >> /tmp/mailfile.log"

Journaliser uniquement

sendmail_path="/usr/sbin/sendmail -t -X /tmp/mailfile.log"

Attention toutefois avec la journalisation, c’est évidemment une solution temporaire. L’utiliser à long terme va vous donner un fichier journal de plus en plus volumineux.

 

  • Pour les utilisateurs d’un hébergement mutualisé (par exemple Infomaniak), vous pouvez généralement utiliser un fichier user.ini qui se trouve à la racine de votre site internet.
    Ouvrez ce fichier à l’aide d’un programme FTP ou par le gestionnaire de fichier de votre hébergeur si il le propose et collez la ligne de commande ci-dessus à la fin du fichier.
  • Pour les personnes qui utilisent la plateforme Plesk, cette instruction peut être ajoutée dans les paramètres PHP du domaine sous la section « Directives supplémentaires ».
  • Finalement vous pouvez aussi le configurer via un fichier de configuration de Apache .htaccess en y ajoutant « php_value » avant l’instruction. Ouvrez ou créez ce fichier à la racine de votre site et insérer ceci à la fin :
    php_value sendmail_path="/usr/bin/cat - >> /tmp/mailfile.log"

 

Faites un test de courriel depuis votre site et observez le fichier /tmp/mailfile.log pour vérifier si tout fonctionne correctement.

Si vous utilisez SSH, c’est aussi possible de regarder en direct les informations logguées via la commande tail:

tail -f /tmp/mailfile.log

Le programme tail « écoutera » en direct les données ce qui va occuper l’affichage de votre terminal. Pour sortir du programme tail et revenir à l’invite de commande, utilisez le raccourci Ctrl+C.

 

A noter que la valeur du chemin d’accès vers « /usr/sbin/sendmail » ou « /usr/bin/cat » peut varier d’un système à l’autre, en cas de doutes vous pouvez demander à votre hébergeur, essayer sans le chemin d’accès (par exemple cat) ou utiliser cette commande SSH pour connaître le chemin exact :

whereis sendmail

De même, le chemin correspondant à /tmp/mailfile.log pour le consulter peut changer selon la configuration de votre serveur. Pour le retrouver, vous pouvez utiliser la commande SSH suivante:

find / -type f -name "mailfile.log"

 

Voilà, vous avez maintenant l’envoi des courriels de votre site entre vos mains et vous pouvez continuer sans vous soucier d’un trop de bavardage de sa part. 💪

Et si vous vous inquiétez, au contraire, d’un éventuel manque de bavardage de votre site, n’hésitez pas à consulter les offres d’abonnement de maintenance ou même à demander un devis ! Avec Share Out, les sites sont choyés, on les écoute et on les soigne !🧙‍♂️