PHP IMAP, Exchange Problème
Donc, j'ai un petit problème avec un script PHP je suis en train d'écrire. Pour commencer, permettez-moi de dire que le script est censé se connecter à une boîte aux lettres IMAP, rechercher des e-mails et télécharger les pièces jointes. Tout cela est déjà codé et travaille avec mon propre compte gmail. Le problème survient quand j'ai essayer de se connecter à un serveur exchange. Court extrait de code :
$mbox = imap_open($host, $login, $password);
echo '<br/>' . imap_last_error() . '<br/>';
$emails = imap_search($mbox, 'FROM "[email protected]"', SE_UID);
J'ai essayé les deux principaux $host "version" (avec ou sans SSL) :
1 - {serveur:993/imap/ssl/novalidate-cert}BOÎTE de réception
2 - {serveur:143/imap/novalidate-cert}BOÎTE de réception
La novalidate-cert traiter avec une erreur de certificat. J'ai aussi essayé le "notsl" paramètres", pour les deux de ces, sans résultat notable. L'erreur que j'obtiens est ce joli message, absolument pas cryptiques en aucune manière, la forme ou la forme :
[CLOSED] IMAP connection broken (server response)
En outre, j'ai également recevoir ces notifications :
Notice: Unknown: Unknown GSSAPI failure: An invalid name was supplied (errflg=1) in Unknown on line 0
Notice: Unknown: GSSAPI mechanism status: Hostname cannot be canonicalized (errflg=1) in Unknown on line 0
Notice: Unknown: Retrying PLAIN authentication after AUTHENTICATE failed. (errflg=1) in Unknown on line 0
Notice: Unknown: Retrying PLAIN authentication after AUTHENTICATE failed. (errflg=1) in Unknown on line 0
Notice: Unknown: Can not authenticate to IMAP server: AUTHENTICATE failed. (errflg=2) in Unknown on line 0
Notice: Unknown: [CLOSED] IMAP connection broken (server response) (errflg=1) in Unknown on line 0
Les deux premiers surtout de puzzle de moi... j'ai essayé ce script sur un autre serveur, assurez-vous que le problème n'était pas lié à mon réseau local. Après beaucoup de googler autour, je n'ai obtenu ceci : http://www.phpfreaks.com/forums/index.php?topic=190628.0 ce qui semble être un peu lourde correction.
Des idées?
OriginalL'auteur Afrosimon | 2011-04-28
Vous devez vous connecter pour publier un commentaire.
Je vais avoir le même problème, il semble que les erreurs sont générés à cause d'un serveur Exchange annonce protocoles d'authentification qu'il ne prend pas en charge (http://vision.eng.shu.ac.uk/mmvlwiki/index.php/Exchange). Il semble aussi que ce problème est isolé sur les serveurs linux, que je n'ai pas de problèmes avec exactement le même code sur une machine Windows. Cela a été un problème de longue date et PHP a récemment été patché (v 5.3.2) pour vous permettre de désactiver certains protocoles d'authentification (http://php.net/manual/en/function.imap-open.php). Le code ci-dessous fonctionne par intermittence pour moi:
Cela fonctionne aussi par intermittence:
J'ai DONC ghetto truqué cela, il ne semble pas fonctionner...mais il a le potentiel pour une boucle sans fin/attaque DOS sur mon serveur exchange de l'entreprise mais /soins
Heureusement qu'il y a une meilleure solution, mais cela devrait vous aider:
OriginalL'auteur Dave Lasley
J'ai un script PHP qui se connecte à un serveur de messagerie OWA et ramène le contenu d'un e-mail à l'aide de la imap_open fonction PHP. L'utilisation de ce contenu, il crée alors une page dans un MindTouch instance.
Tout ce code fonctionne correctement, mais le script a été signalé la GSSAPI échec erreurs indiquées ci-dessus. Dans mon web page de résultats, le succès a été (correctement), mais la page affiche également la GSSAPI messages d'erreur.
Ce que j'ai découvert dans mon code, j'étais en tournant sur
error_reporting(E_ALL)
. Quand j'ai changé le niveau d'information, le message d'erreur a disparu.Je sais que l'erreur est toujours là, et je ne sais pas pourquoi. Mais, puisque la totalité de mon code fonctionne correctement, je voulais juste le message d'erreur de s'en aller, parce que c'était déroutant de mes utilisateurs.
La modification de la déclaration d'un niveau inférieur, on a pris soin de cela.
OriginalL'auteur user1077774