Une fonction mail pour free (protomail) v 4.0

Soyez le premier à donner votre avis sur cette source.

Vue 25 214 fois - Téléchargée 1 923 fois

Description

Protomail est une librairie pour envoyer des mails à partir d'un site chez free.

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.

Cette librairie implémente une fonction protomail qui prend le même format que la fonction mail standard de php.

Qu'apporte cette librairie par rapport au form2mail.pl décrit dans http://support.free.fr/web/pperso/forms.html ???

Le script form2mail.pl décrit dans le support de free envoi un formulaire vers le propriétaire du compte. Tandis que la librairie protomail permet d'envoyer un email vers une adresse email quelconque. Vous pouvez ainsi :
envoyer une lettre d'information à vos abonnés
s'ils oublient leur mot de passe de connexion, envoyer un email pour le leur rappeler
envoyer une confirmation de commande à vos clients par email si vous faites du commerce électronique.
etc..
Encore mieux, si vous trouvez un script sympa sur lbb.org, phpscripts-fr.net, phpapps.org ... qui a absolument besoin de la fonction mail de php, il vous suffit de modifier légèrement ce script (inclure la librairie et remplacer mail par protomail) pour pouvoir l'utiliser chez free.

[EDIT DU 14/05/03]

Protomail est un script qui marche très bien, mais qui marche une fois sur 5 ! Pour être sur que le mail arrive, après quelques tests, j'en ai conclu une chose (code ci-dessous). Chez moi, depuis, ça marche, mais le plus dur c'est d'arranger le code pour son propre cas !!! Il faut procéder comme ça, dites-moi ce que vous en pensez :

[EDIT DU 14/08/03]

Protomail a été mis a jour par son auteur Samuel Kabak en la version 4.0 suite à la modification du serveur mail de free (imp.free.fr) en version php4

[EDIT DU 21/10/03]

La version est passée à 4.1 suite à une modification sur le passage d'argument dans la fonction fsockopen. Un contributeur a aussi eu la très bonne idée de mettre Protomail sous forme de classe. La fonction marche encore très bien à ce jour !!

Source / Exemple :


Changelog

Changements protomail
---------------------

Version 2.0 (12/2002)
Publication de protomail sous licence GPL

Version 2.1 (01/2003)
Optimisation de protomail par la réduction du nombre de requêtes http par 2
  (L'envoi d'un email utilisait 6 requêtes http. 3 de ces requêtes n'étaient
  pas nécessaires)

Version 2.2 (01/2003)
- Ajout des fonctions protomail_clean (qui permet de vider le dossier sent_mail)
  et proto_valid_email (qui permet de valider un email)
- Obligation d'avoir un mail valide dans le champ $to
- Utilisation de preg_match pour isoler les champs from, cc et bcc au lieu de
  explode
- Si le champ $from est vide, utiliser une valeur par défaut $user@free.fr

Version 2.3 (02/2003)
Utilisation de trois tentatives pour ouvrir le socket avec un time-out de 3s
  (pour contourner un blocage de gestion d'ouverture/fermeture de socket chez
  free.fr)

Version 2.4 (02/2003)
- augmenter le time-out du socket à 10s
- enlever l'obligation d'avoir un mail valide dans le champ $to afin de
  permettre l'envoi de email à plusieurs adresses

Version 3.0 (02/2003)
- utiliser les 7 ip's du serveur imp.free.fr au lieu de son dns
- améliorer la getion des erreurs.

Version 3.1 (03/2003)
- essayer d'ouvrir le socket trois fois pour chaque serveur 

Version 3.2 (06/2003)
- essayer d'ouvrir le socket 36 fois pour chaque serveur (paramètre $nb_retry)

Version 3.3 (07/2003)
- appliquer la fonction urlencode aux champs $subject et $msg, Car la présence du caractère & dans le message provoquait un bug.
- la fonction protomail_clean est devenue une fonction vide, car jugée inutile.
- utiliser les expressions régulières pour récupérer la session

Version 3.4 (07/2003)
- optimiser protomail de manière à ce que si free installe le mod_gzip protomail continue de fonctionner

Nota: la version 3.4 fonctionne avec l'ancienne version d'imp.free.fr php3 destinée à disparaître

Version 4.0 (07/2003)
- réécriture des requêtes http pour que protomail fonctionne avec la nouvelle version imp.free.fr php4
- ajouter la possibilité de paramétrer l'utilisation des ip ou du dns grâce à la variable $use_dns

Version 4.1 (10/2003)
- Dans lib.protomail.php, enlever le passage d'arguments par référence dans l'appel de fsockopen pour éviter le "Warning: Call-time pass-by-reference has been deprecated" dans les nouvelles versions de php

Conclusion :


Ce script n'est pas de moi, un readme est dans le fichier zip pour vous expliquer le fonctionnement. :-)
Auteur : Samuel Kabak
Son site : http://samuel.kabak.free.fr

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

matrey
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004
-
effectivement c'est pas con comme système 10/10 !!
cs_mehdibou
Messages postés
365
Date d'inscription
vendredi 24 mai 2002
Statut
Membre
Dernière intervention
18 octobre 2004
-
Très intéressant, merci pour cette source. Fallait y penser qd mm :) 10/10
cs_Dean
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004
-
J'espère que ça résoudra définitivement ces problèmes d'envoi de mail chez Free, car c'est un sujet qui commence à devenir rébarbatif sur les forums :-)
Ah oui j'oubliais : 10/10
DuncanIdaho
Messages postés
98
Date d'inscription
mardi 1 janvier 2002
Statut
Membre
Dernière intervention
12 février 2008
-
Nikel ! Je bosse sur un portail en PHP, sa va m'etre utile ! merci :)
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
bah 10/10 aussi, étant adapete de Free, je ne peux que te féliciter ^^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.