PHP IMAP Exchange-Problem
Also ich habe ein kleines problem mit einem PHP-Skript Schreibe ich momentan. Um zu beginnen, lassen Sie mich sagen, dass das Skript soll eine Verbindung zu einem IMAP-Postfach, Suche nach einigen E-Mails und herunterladen Ihrer Anhänge. All dies ist bereits gecodet und funktioniert mit meinem eigenen gmail-Konto. Das problem entstehen, wenn ich versuchen und eine Verbindung zu einem exchange-server. Kurzer code-Auszug :
$mbox = imap_open($host, $login, $password);
echo '<br/>' . imap_last_error() . '<br/>';
$emails = imap_search($mbox, 'FROM "[email protected]"', SE_UID);
Habe ich versucht, zwei Haupt - "$host", "version" (mit und ohne SSL) :
1 - {- server:993/imap/ssl/novalidate-cert}INBOX
2 - {server:143/imap/novalidate-cert}INBOX
Des novalidate-cert-deal mit einem Zertifikat Fehler. Ich habe auch versucht die "notsl" - Parameter für diese beiden, ohne nennenswerte Ergebnisse. Den Fehler bekomme ich diese schöne Meldung, absolut nicht kryptisch in irgendeiner Weise, Form oder form :
[CLOSED] IMAP connection broken (server response)
Darüber hinaus erhalte ich auch diese Hinweise :
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
Den ersten beiden vor allem Rätsel von mir... ich wollte versuchen, dieses Skript auf einem anderen server, um sicherzustellen, dass das Problem nicht im Zusammenhang mit meinem lokalen Netzwerk. Nach viel googeln um, ich habe nur diese : http://www.phpfreaks.com/forums/index.php?topic=190628.0 das scheint wie etwas umständlichen fix.
Irgendwelche Ideen?
InformationsquelleAutor Afrosimon | 2011-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche Problem, wie es aussieht, der Fehler wird generiert, da ein Exchange-server gibt die Authentifizierungsprotokolle, die es nicht unterstützt (http://vision.eng.shu.ac.uk/mmvlwiki/index.php/Exchange). Es scheint auch, wie dieses Problem isoliert zu linux-Servern habe ich keine Probleme mit den exakt selben code auf einem Windows-Rechner. Dies war ein langjähriges Problem und PHP wurde vor kurzem gepatcht (v 5.3.2), können Sie deaktivieren bestimmte Authentifizierungs-Protokolle (http://php.net/manual/en/function.imap-open.php). Der code unten funktioniert nur zeitweise für mich:
Funktioniert das auch nur zeitweise:
ALSO ich ghetto manipulierten diese, es scheint zu funktionieren...obwohl es das potential für eine endlose Schleife/DOS-Angriff auf meine Unternehmens-exchange-server-aber /care
Hoffentlich gibt es eine bessere Lösung, aber dies sollte helfen:
InformationsquelleAutor Dave Lasley
Ich habe ein PHP-Skript, das in Verbindung mit OWA-E-Mail-server und holt den Inhalt einer E-Mail mit dem imap_open PHP-Funktion. Mit diesem Inhalt, dann erstellt eine Seite im MindTouch-Instanz.
Alle dieser code funktioniert einwandfrei, aber das Drehbuch war die Berichterstattung der GSSAPI-Fehler-Fehler, die oben gezeigt. In meinem web-Seite Ergebnisse Erfolg war (richtig) berichtet, aber die Seite wird auch angezeigt, die GSSAPI-Fehler-Nachrichten.
Was ich entdeckte in meinem code war, dass ich einschalten
error_reporting(E_ALL)
. Wenn ich änderte die reporting-Ebene, die Fehlermeldung ging Weg.Ich weiß, der Fehler ist immer noch da, und ich weiß nicht, warum. Aber da alle mein code ist richtig, ich wollte nur die Fehlermeldung Weg zu gehen, denn es war verwirrend, mein Benutzer.
Änderung der reporting-Ebene zu einer geringeren gesorgt.
InformationsquelleAutor user1077774