phpmail

Comment faire fonctionner PHPMail sur un NAS Synology?

Ce site est auto-hébergé sur un NAS Synology (un DS115j, avec un processeur MARVELL Armada 370 de 800 Mhz et seulement 256 Mo de RAM).

C'est peu, oui, mais parfaitement suffisant pour ce que j'en fais, à savoir stocker quelques documents, avoir un petit serveur web (qu'il a fallu configurer) et mettre un petit CMS (Pagekit) permettant de servir ces pages.

Ayant oublié le mot de passe du compte admin, j'ai eu la bonne idée d'aller supprimer la valeur dans la DB de Pagekit, laissant la valeur nulle.

Pagekit n'a pas apprécié la manoeuvre, et il était impossible de se reconnecter dans l'administration.

Heureusement qu'il y avait un bouton "Mot de passe perdu", qui envoie en principe un mail à l'adresse renseignée lors de l'installation.... Mais il faut pour cela que le serveur puisse envoyer ce mail via PHPMail, ce qui ne peut se faire que quand le NAS est configuré...

J'ai cherché assez bien sur Google, mais mon grand ami n'a pourtant pas été d'une grande aide, car tous les forums renseignent la modification du fichier PHP.ini, qui n'est pas accessible sur le NAS, vu que PHP est un package installé.

Je me suis dit que ça pouvait provenir de la configuration d'un serveur SMTP sur le NAS, ce que j'ai fait. Voici les différentes étapes.

  1. Dans DSM (configuration du NAS), prendre le "Panneau de configuration".
  2. Dans le menu "Système", prendre "Notification".
  3. Alimenter toutes les valeurs dans l'onglet "E-mail" en activant les notifications par mail. Il faut alors renseigner :
    1. l'adresse électronique du destinataire des notifications (soi-même en principe)
    2. le préfixe du sujet (qui permet de savoir de quel type de mail il s'agit, dans le sujet du mail)
    3. le fournisseur de service (un serveur préexistant dans la liste, un serveur SMTP sur le Syno ou un autre fournisseur, comme Yahoo p.ex.)
    4. reprendre l'adresse du serveur SMTP le cas échéant, ainsi que le port
    5. indiquer les différents autres paramètres (authentification requise, nom d'utilisateur et mot de passe, connexion sécurisée ou non, nom et adresse mail de l'expéditeur de ces mails de notification)
  4. Tester en cliquant sur le bouton "Envoyer un courriel de test"
  5. Recevoir le mail de test pour vérifier que ça fonctionne bien.

Synonotif

Je n'ai rien eu d'autre à faire pour que PHPmail fonctionne ensuite en Pagekit, sauf vérifier bien sûr que les paramètres dans Pagekit (comme l'adresse mail destinataire soit correcte).

J'ai trouvé un petit script PHP permettant de tester l'utilisation de PHPmail en dehors de tout autre package, voici le script que vous pouvez copier dans un nouveau script PHP sur votre serveur. Moi, j'ai mis ça dans un fichier "testmail.php" :

<?php
echo mail("monadressemail@yahoo.fr", "Topic", "Text", "From: moi <monadressemail@yahoo.fr>");
?>

Voici le mail qui est reçu avec ce petit code :

Phpmail

{{ message }}

{{ 'Comments are closed.' | trans }}