Vous savez certainement que Free a désactivé la fonction mail() de PHP. Cet article vous explique comment envoyer des mails depuis un site hébergé chez free grâce à la librairie protomail (et sans utiliser le script form2mail).
La fonction PHP mail() est maintenant disponible chez free, pour en savoir plus, consulter cet article
Utilisant SPIP chez Free, vous savez certainement que vous ne pourrez pas utiliser toutes les fonctionnalités de SPIP car Free à désactiver la fonction mail() de PHP.Vous trouverez ici et là certains articles vous proposant une solution ponctuelle grâce à l’utilisation du script form2mail décrit dans le support de free.
Cet article vous propose d’intégrer la librairie protomail à votre site SPIP. Cette librairie implémente une fonction protomail qui prend le même format que la fonction mail standard de php. En fait, Protomail utilise le protocole HTTP pour communiquer avec le webmail de free (http://imp.free.fr) et il simule un navigateur pour envoyer un mail.
Comme indiqué sur la page de protomail, il faut être conscient que :
...
A tout moment free peut bloquer protomail.
protomail ne fonctionne pas à 100% (Cela dépend de la charge des serveurs free "échec d’ouverture de socket").
...
Comment utiliser protomail
Télécharger tout d’abord la librairie à cette adresse
Dans l’archive récupérer le fichier lib_protomail.php et copier le dans le dossier ./ecrire de votre site
Editer le fichier lib_protomail.php, au début de ce fichier vous trouverez les lignes
$user_name='login_utilisateur_chez_free';
$user_passwd='password_utilisateur_chez_free';
Remplacer
login_utilisateur_chez_free par votre code utilisateur Free (Sans effacer les apostrophes).
Remplacer
password_utilisateur_chez_free par votre mot de passe (Sans effacer les apostrophes).
La configuration de la librairie est terminée, il ne reste plus qu’à modifier le code source de SPIP pour utiliser la fonction protomail() à la place de la fonction mail(). Ceci va être relativement simple car les développeurs de SPIP nous ont mâché le travail. (Les modifications décrites ici sont basées sur la version 1.6 de SPIP)
Editer le fichier ./ecrire/inc_version.php [1]
Au début du fichier, insérer la ligne
include ("lib.protomail.php");
Editer le fichier
./ecrire/inc_mail.php [
1]
Dans ce fichier, remplacer la fonction
function tester_mail() {
global $hebergeur;
$test_mail = true;
if ($hebergeur == 'free') $test_mail = false;
return $test_mail;
}
Par la fonction
function tester_mail() {
global $hebergeur;
$test_mail = true;
// if ($hebergeur == 'free') $test_mail = false;
return $test_mail;
}
Dans la fonction
envoyer_mail(), remplacer les lignes
case 'free':
return false;
Par les lignes
case 'free':
return protomail($email, $sujet, $texte, $headers);
Voilà, c’est tout, SPIP devrait maintenant pouvoir envoyer des mails depuis votre site hébergé chez Free sans autres modifications.
Rappel :
A tout moment free peut bloquer protomail.
protomail ne fonctionne pas à 100% (Cela dépend de la charge des serveurs free "échec d’ouverture de socket")
Rendez-vous régulièrement sur la page de l’auteur de cette librairie afin de télécharger d’éventuels correctifs.