Aller au contenu

Lire ses mails en Php


Sujets conseillés

Posté

Bonjour

Je commence tout juste à essayer de lire mes mails en Php en m'inspirant d'informations trouvées sur des forums ; pour commencer, jai :

$handler = imap_open ("{pop3.free.fr.ext:110/pop3}INBOX", "identifiant", "mot_de_passe");

Comme vous lavez compris je fais ces tests sur un identifiant chez Free.

Je reçois un message Php disant : Fatal error: Call to undefined function: imap_open() in ...

Cette function imap_open est inconnue chez Free? Jai fait une erreur ?

Par avance merci de votre aide.

Francois

Posté

Essaie déjà de lire tes mels en imap sur ton courrielleur (OE, TB ou outlook) et ensuite, si ça marche, reprends tous les paramètres, y compris le port pour mettre dans ton script.

Mais là, le port 110 c'est du pop

Posté (modifié)

bonjour et merci de vos réponses.

J'ai effectivement l'impression que les fonctions Imap ne sont pas fournies chez Free; j'ai fait un phpinfo() qui n'a rien donné sur imap.

Free: dans ce premier test, à la fois l'hébergeur de la page Php et l'hébergeur de la boite mail que je cherche à relever.

Le Pop: ma compréhension est qu'on peut faire du Pop avec les fonctions Imap.

Pour moi qui débute sur ce sujet:

- est ce rare / fréquent que les fonctions Imap ne soient pas fournies?

- y a t il une autre solution que ces fonctions Imap pour relever des mails en Php?

Merci de votre aide.

Francois

**************************

Je viens d'exécuter ma page de test depuis un hébergeur autre que Free en ciblant la même BAL chez Free.

Je tombe sur une erreur à l'Open: Couldn't open stream {pop3.free.fr.ext:110/pop3}INBOX

Une question simple(tte): où doivent être installées les fonctions Imap? chez l'héhergeur de la page Php? chez l'hébergeur de la BAL? les deux?

Francois

Modifié par francoisch
Posté

Il suffit de chercher "pop class php" ou "pop3 class php" dans google pour trouver des classes toutes faites qui te permettent de dialoguer avec un serveur pop3 pour lire tes mails en php.

Posté
Une question simple(tte): où doivent être installées les fonctions Imap? chez l'héhergeur de la page Php? chez l'hébergeur de la BAL? les deux?

Les fonctions imap de PHP doivent être "installées" là où est exécuté PHP : c'est PHP qui en a besoin pour pouvoir dialoguer avec un serveur IMAP (ou POP).

Coté fréquence, aucune idée... comme toutes les extensions PHP, c'est au bon vouloir de l'hébergeur.

Si PHP est installé en CGI, tu peux tenter de charger toi même l'extension via la fonction dl(), mais je n'y crois pas trop :

if(!extension_loaded('imap')) dl('imap.so');

Pour ton erreur : Couldn't open stream {pop3.free.fr.ext:110/pop3}INBOX

Il y a un .ext dans l'URL qui ne me semble pas normal du tout, c'est toi qui l'a mis non ?

Pour ce qui est des autres solutions, comme d'hab on peut se palucher le protocole complet à coup de socket, ou opter pour une classe "toute prête" (si cela existe) comme l'indique LiFi, ou encore contacter/changer d'hébergeur...

Posté

bonjour et merci de vos réponses.

Maintenant que tu le dis, ça paraît évident, les fonctions Imap doivent être installées là où le Php est exécuté, sur le serveur de messagerie dans ce cas.

Ca veut aussi dire qu'il est impossible de cette manière de relever des BAL chez des serveurs qui n'ont pas implémenté ces fonctions (Free, ...).

Je vais quand même essayer l'extension, pour voir.

Le .ext était dans un exemple que j'ai trouvé, alors je l'y ai laissé; je dois plutôt l'enlever?

J'ai trouvé des classes, comme proposé; maintenant, je me bats avec elles car je ne connais rien à la prog OO.

Merci encore et à bientôt, je ne suis pas au bout.

Francois

Posté

Tu mélanges tout :

Sur les serveurs de messagerie de Free, la fonction imap est bien dispo, l'adresse imap est : imap.free.fr

Par contre sur les serveurs d'hébergement Free, l'extension php imap n'est pas installé, tu ne peux donc pas directement interroger un compte imap

Posté

Je te remercie de cette précision; effectivement, je mélangeais.

Si je te comprend bien, ça veut dire que d'un site depuis un autre hébergeur je peux relever le courrier d'une BAL installée chez Free.

Francois

Posté

Merci de ta réponse LiFi qui m'est précieuse puisque je ne connais rien, de toute évidence, à ce sujet.

Une autre question:

- je souhaite lire des mails en Pop, par exemple sur un de ces serveurs Free depuis un site non Free équipé des extensions Imap

- ma requête peut-elle être:

$handler = imap_open ("{pop3.free.fr:110/pop3}INBOX", "identifiant", "mot_de_passe");

ou bien faut-il y changer qqechose?

Par avance merci de votre aide.

Francois

Posté
Quand je veux interroger un serveur imap j'evite d'appeller le pop
+1
Essaie déjà de lire tes mels en imap sur ton courrielleur (OE, TB ou outlook) et ensuite, si ça marche, reprends tous les paramètres, y compris le port pour mettre dans ton script.

Mais là, le port 110 c'est du pop

c'est simple, si tu veux vraiment lire en imap, tu reprends les propriétés dans ton courrielleur
Posté (modifié)

au temps pour moi :oops:

Free blackliste peut être certains serveurs externes pour éviter les attaques. Et donc, si tu es sur un mutualisé, c'est peut-être la raison

Modifié par Leonick
Posté

bonjour

Effectivement, comme rappel des épisodes précédents, je souhaite bien interroger des serveurs de messagerie en POP.

Mais, comme l'a dit Kioob, il n'y a pas d'extension Php POP, si j'ai bien compris.

A bientôt.

Francois

Posté (modifié)

Bonjour

Jai trouvé un code qui convient bien à ce que je veux faire, un affichage simplifié des messages présents dans une / plusieurs BAL.

Je relève très bien des BAL chez Free; par contre, je narrive pas à relever des BAL chez Gmail.

Jai ce message :

imap_open() Couldn't open stream {pop.gmail.com:110/pop3}INBOX

alors que je relève très bien ces mêmes BAL Gmail avec mon logiciel de messagerie favori et les mêmes paramètres pop.gmail.com.

Dans mes BAL Gmail, jai activé la fonction Pop dans Paramètres .

Merci par avance de votre aide.

Francois

Modifié par francoisch
Posté

Hello,

il me semble que Gmail impose certaines sécurités non ? Tu n'as pas TLS, SSL ou encore "authentification sécurisée" de cochée dans ton logiciel de messagerie ? Parce que si c'est le cas, c'est le genre d'options qu'il faut également préciser à imap_open().

Posté

bonjour

J'ai exactement le même problème avec Hotmail:

Couldn't open stream {pop3hot.com:110/pop3}INBOX

J'utilise bien comme identifiant Hotmail l'adresse mail complète: truc_AT_hotmail.fr.

Une différence entre Hotmail et Gmail: la réponse (négative) de Hotmail arrive immédiatement, comme les réponses (positives) de Free, alors que la réponse (négative) de Gmail est très longue à venir; un indice?

************************************************

Je suis hébergé chez OVH en mutualisé; puis je demander qqechose à leur support?

Mon Client Pop est très modeste, il commence par:

if ($mail_cnx = imap_open ("{".$serveur_entrant.$port.$protocole."}".$boite, $identifiant, $mot_de_passe) )

Peut-être y manque t il un paramètre ou deux, comme le suggère Kioob? mais lesquels?

Francois

Posté

pop3hot.com : t'es sûr de ton adresse là ? Je ne savais même pas qu'Hotmail acceptait le POP...

Pour Gmail je viens de vérifier (une seule recherche dans Google), et les sites confirment qu'ils imposent SSL.

Il faut vraiment que tu utilises les même paramètres que ton logiciel de messagerie, sinon tu n'y arriveras jamais.

Pour ce qui est de l'utilisation de SSL, il y a des exemples dans la doc PHP : http://fr.php.net/imap_open

Posté

Formidable, merci de ton aide, pour Gmail ça marche avec:

imap_open("{pop.gmail.com:995/pop3/ssl/novalidate-cert}INBOX", $username, $pasword);

Pour Hotmail, j'ai trouvé ce serveur Pop dans ce Forum mais mes requêtes ne passent pas.

J'a ajouté imap_errors et imap_last_error dans mon code mais sans recueillir d'informations.

Reste donc à faire fonctionner Hotmail.

Francois

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...