Version imprimable http://spipeur.free.fr/article.php3?id_article=11
Le site des utilisateurs de SPIP

Protomail : Envoyer un mail même depuis un site chez Free

Par Eric, le dimanche 8 février 2004.

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.

[1] ou .php3 si vous n’utilisez pas la version 1.6 pour free dont il est question dans cet article


Spip’eur - Scripts, articles, ressources, astuces pour SPIP http://spipeur.free.fr/article.php3?id_article=11