imap_open et erreur 500

Basile
Invité n'ayant pas de compte PHPfrance

17 nov. 2014, 16:11

Bonjour,
je suis pas mal habitué au PHP et ses procédures classiques avec mySQL...
et j'essaye maintenant de m'initier au fonctionnement imap_open() en PHP, en m'inspirant des nombreux (!!) sites Internet qui le présentent. J'applique donc :).
Mon serveur de mail est Gmail, je tente de me connecter ainsi:
$mbox = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'monlogin', 'monmotdepasse');
Mais je n'obtiens jamais rien d'autre qu'une "500 Internal Server Error".
La fonction Imap est pourtant bien activée (un petit phpinfo...).
J'ai farfouillé Internet pour mieux comprendre l'histoire des ports, j'ai même réussi à ouvrir explicitement ce port 993 en TCP/UDC sur mon routeur (exploit!). Mais puisque je recevais sans souci mes mails sur mon logiciel de messagerie, je suppose que ni mon routeur ni mon Firewall ne bloquent ce port 993. Me trompé-je?
Donc je ne sais pas trop quoi faire.... D'avance merci à ceux qui pourront me dépanner.
à +
Basile

Nestecha
Invité n'ayant pas de compte PHPfrance

17 nov. 2014, 18:14

Commence par activer le IMAP dans ton Gmail :

Enable IMAP in your Gmail settings

Sign in to Gmail.
Click the gear in the top right.
Select Settings.
Click Forwarding and POP/IMAP.
Select Enable IMAP.
Click Save Changes.

Source : https://support.google.com/mail/trouble ... ts=1665018

Puis vérifie que les logins/mot de passe sont bons.

Et ça devrait fonctionner.

Basile
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 01:30

Merci de la réponse !
Mais IMAP est déjà activé, enfin je suppose,
j'ai configuré ainsi mon logiciel de messagerie (et donc Gmail aussi) pour pouvoir traiter mes mails depuis ce logiciel ou l'interface Gmail à volonté, dans les 2 sens...
Et bien sûr j'ai vérifié login et mot de passe (ceci dit j'ai créé une condition, si le imap_open renvoie FALSE, pour m'indiquer cela... Donc j'imagine que si le login et mdp étaient faux, j'aurais mon message d'erreur perso et non pas cette agaçante erreur 500)
Any other idea? :)
Basile

Basile
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 01:42

Je suis allé vérifier (sait-on jamais) et c'est bien activé (IMAP)...

Nestecha
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 02:53

Pourrais-tu utiliser imap_errors pour avoir plus d'infos sur l'erreur que tu as ?

Basile
Invité n'ayant pas de compte PHPfrance

18 nov. 2014, 12:06

Merci !
Voici ci-dessous le code que j'utilise.
J'ai inséré un imap_errors(), avec l'aide de la doc de php.net pour être sûr;
mais j'obtiens le même affichage de "500 Internal Server Error",
sans que ma ligne imap_errors() soit atteinte,
comme si le imap_open() à lui tout seul bloquait et empêchait tout éclairage sur le problème :).
A moins que je puisse utiliser imap_errors() autrement ???
Merci du soutien en tout cas ;)
<?php
$mbox = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'monlogin', 'monmotdepasse');   
  imap_errors();
 
   if (FALSE === $mbox) {
      $info = FALSE;
      $err = 'La connexion a échoué. Vérifiez vos paramètres!';
  } else {
      $info = imap_check($mbox);
      imap_close($mbox);
  }

  if (FALSE === $info) {
      echo $err;
  } else {
      echo 'La boite aux lettres contient '.$info->Nmsgs.' message(s) dont '.
                                            $info->Recent.' recent(s)';
  }
  
?>

ViPHP
xTG
ViPHP | 7331 Messages

18 nov. 2014, 14:10

As-tu accès aux logs du serveur ? Car il serait bon de savoir véritablement ce qui se cache derrière cette erreur 500. ;)

Eléphanteau du PHP | 12 Messages

18 nov. 2014, 14:57

[Message devenu inutile...]
Modifié en dernier par Basile le 18 nov. 2014, 15:07, modifié 1 fois.

Eléphanteau du PHP | 12 Messages

18 nov. 2014, 15:03

Oh surprise, je viens de découvrir en amont de la racine de mon sous-domaine réservé :)
un dossier .logs, avec un fichier php_error.log.
J'ai cru que j'étais sauvé... et en fait en l'ouvrant, je découvre un bel historique de mes erreurs précédentes :) [quels beaux souvenirs!]
mais aucune depuis que j'essaye ce imap_open.
On dirait que tout s'oppose à ce que j'avance sur mon imap_open... :)

Eléphanteau du PHP | 12 Messages

18 nov. 2014, 15:06

Et juste, si ça peut vous aider à m'aider,
voilà les lignes renvoyées par mon phpinfo:

imap

IMAP c-Client Version 2007e
SSL Support enabled
Kerberos Support enabled

Je ne sais pas trop à quoi ça correspond :).
Est-ce OK ? Je voudrais être certain que ce n'est pas de là que le problème vient.

ViPHP
xTG
ViPHP | 7331 Messages

19 nov. 2014, 14:24

Pourrais-tu essayer un script avec uniquement imap_errors() dedans ?
Si tu as une erreur 500 avec ça c'est qu'il y a bien un souci avec le module imap (et donc pas un souci de code).

Eléphanteau du PHP | 12 Messages

19 nov. 2014, 16:06

Merci de continuer à m'aider :).
J'ai donc tenté le script avec seulement imap_errors() et j'obtiens une page normale blanche.
Pas d'erreur 500
donc c'est bien du côté de mon code et/ou du côté de la connexion à ma boîte Gmail que qqch bugge...

ViPHP
xTG
ViPHP | 7331 Messages

20 nov. 2014, 11:44

Donc pour continuer deux solutions :
- essayer avec une adresse qui fonctionne à tous les coups
- pouvoir accéder aux logs serveur pour avoir l'erreur

Eléphanteau du PHP | 12 Messages

20 nov. 2014, 12:31

MErci pour la bonne idée !
Du coup j'ai essayé avec une boîte mail Free,
$mbox = imap_open("{pop.free.fr:110/pop3}INBOX", "monlogin", "monmotdepasse");
Et ça ne marche ... toujours pas :).
La bonne nouvelle, c'est que ce n'est plus une erreur 500, c'est un
Warning: imap_open() [function.imap-open]: Couldn't open stream {pop.free.fr:110/pop3}INBOX.
... ce qui, cependant, ne m'en dit pas beaucoup plus.
J'ai essayé avec et sans le INBOX, j'ai essayé de remplacer le 110 par un 143 en mettant pop3.free.fr, j'ai tenté de rajouter le /novalidate-cert....
Rien de tout cela n'est efficace :( :(.


Intéressant toutefois :
si j'utilise "monlogin" j'obtiens ce Warning couldn't open stream ; mais si j'utilise "[email protected]" je retrouve ma fameuse erreur 500.
Voici un symptôme... pour lequel je suis bien incapable d'établir un diagnostic :)

ViPHP
xTG
ViPHP | 7331 Messages

20 nov. 2014, 19:50

Commentaire intéressant sur le doc PHP : http://php.net/manual/en/function.imap-open.php#114099