Puisque ce code de test fonctionnait aussi une fois inséré dans la fonction _mail de Dotclear, j’ai fini par réutiliser petit à petit les variables fournies à la fonction par Dotclear, jusqu’à trouver celle qui posait problème.
Il y a visiblement une erreur dans le format de l’en-tête de l’e-mail. En écrasant la variable $headers à l’intérieur de la fonction _mail afin d’y insérer moi-même l’en-tête, j’arrive enfin à recevoir les e-mails de notification!

Pour corriger cela, il faut ouvrir le fichier config.php qui se trouve dans le répertoire inc de Dotclear, aller à la fin du fichier où se trouve la fonction _mail, et la remplacer par ce qui suit:


function _mail($to,$subject,$message,$headers)
{
// En-têtes du message
$headers = "";
$headers = "From: NOM DU SITE <ADRESSE-EMAIL_DE_L-EMETTEUR@NOM-DE-DOMAINE.COM-OU-FR-OU-NET-OU-AUT'>\n"; // ajout du champ From
$headers = $headers."Content-type: text/plain; charset=UTF-8\n"; // ajout du type d'encodage du corps
// Appel à la fonction mail
mail($to, $subject, $message, $headers);
}

Remplacez le texte en majuscules par les informations vous concernant. Si vous oubliez de le faire, vous vous rendrez certainement compte de ce qu’il faut modifier une fois que vous recevrez l’e-mail 🙂

Je vais maintenant m’attaquer à l’extension permettant à chaque personne postant un commentaire de s’abonner afin de recevoir les réponses suivantes. Pour l’instant, la case à cocher s’affiche sous le « captcha » anti-robot / anti-spam, mais ces e-mails ne sont visiblement jamais envoyés…

14/03/2021: Face à l’impossibilité de faire fonctionner l’extension de notification de réponse à un commentaire sur Dotclear, j’ai testé WordPress et validé le bon fonctionnement des envois d’e-mails. Le thème utilisé sur mon blog ayant été porté de WordPress à Dotclear par son créateur, j’ai pu le réutiliser, mais non sans mal…
S’agissant d’un thème assez ancien, il ne figure pas dans la liste de ceux proposés sur l’interface d’administration de WordPress. Il aura fallu fouiller sur mon moteur de recherche favori pour retrouver le site du créateur de ce thème, et pour me rendre compte finalement que les fichiers n’étaient plus disponible en téléchargement! Heureusement, la DeLorean du web m’a permis de remettre la main dessus. Ce n’est que le début de l’aventure.

Des extensions de WordPress affirment permettre l’import d’une base de données Dotclear afin de transposer l’intégralité du contenu sur WordPress, mais il s’agit ici aussi de fichiers obsolètes:

  • Incompatibles avec les versions récentes de Dotclear ;
  • Utilisant des fonctions PHP qui n’existent plus ;
  • Incompatibles avec les versions récentes de WordPress.

Je vous fais la version courte, car j’ai aussi beaucoup utilisé les copies de sites fournies par archive.org, jusqu’à ce que la recopie manuelle de tout le contenu de mon blog me paraisse finalement être la solution la moins compliquée à mettre en œuvre.
Le blog utilise donc maintenant WordPress. Il se peut que des fautes d’inattention lors de la recopie manuelle impactent certains billets et fichiers joints. Si vous rencontrez le moindre problème, sachez que vous pouvez m’en faire part en postant un commentaire dans le billet concerné. Vous recevrez même une notification par e-mail lorsque j’y répondrai, n’est-ce pas magnifique?

Comme le thème utilisé ici est assez ancien, cela nécessite quelques modifications manuelles dans ses fichiers.
Par exemple, j’utilise l’extension Subscribe to comments reloaded pour les notifications de réponses aux commentaires. Afin d’afficher la case à cocher dans le formulaire de commentaires, il faut éditer le fichier comments.php contenu dans le répertoire du thème pour y ajouter ce code:
<?php global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo $wp_subscribe_reloaded->stcr->subscribe_reloaded_show(); } ?>
Je l’ai ajouté juste en dessous du code affichant la zone de saisie du commentaire:
<textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea>
<?php global $wp_subscribe_reloaded; if (isset($wp_subscribe_reloaded)){ echo $wp_subscribe_reloaded->stcr->subscribe_reloaded_show(); } ?>