kurios imap_open: Seite kann nicht geladen werden

Graeivo

Mitglied
Hallo,
Ich habe ein kurioses Problem mit der imap_open Funktion. Beim Aufruf der Seite kommt:
"Safari can’t open the page “http://www.graf-scherfede.de/test/Mail/getMails.php” because the server unexpectedly dropped the connection. This sometimes occurs when the server is busy. Wait for a few minutes, and then try again."

Lass ich die imap_open weg wird die Seite geladen
Auch wenn ich die Serverangabe ändere kann die Seite geladen werden

Die Funktion
imap_open("{pop.gmx.net:110/pop3}INBOX","Login","PW");

Die Server-Daten müssten stimmen, habe sie mit anderen verglichen.

Habe einen Foren Eintrag gefunden, wo jemand das selbe Problem hat:
http://www.php.de/php-tipps-2005-2/31838-erledigt-imap_open-terminiert-skript.html

Es wird jedoch nicht aufgelöst woran es lag.
Wahrscheinlich an irgendeiner PHP-Einstellung?
Kenne mich damit jedoch wenig aus.

Ich habe PHP Version 5.2.6

Hat jemand eine Idee? Ich weiß nicht mehr weiter...
Danke schonmal für die Mühen
 
Das hier an den Anfang des Scripts und dann mal Fehler posten.

PHP:
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
 
Hi,

wenn ich das im Firefox aufrufe, öffnet sich der Download-Dialog und ich kann ein leeres Dokument herunterladen. LiveHTTPHeaders spuckt nur einen HTTP 200 aus, sonst nichts.

Poste doch mal Dein Script, denn:

PHP:
<?php
$r = imap_open("{pop.gmx.net:110/pop3}INBOX","***","***");
var_dump($r);
?>

ergibt bei mir erwartungsgemäß:

Code:
resource(2) of type (imap)

LG
 
mail2.php
PHP:
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);  
echo "Test";
function show_mails($server, $account, $password)
{
$mailbox = imap_open("{".$server.":110/pop3}INBOX", $account, $password);
$mails = imap_fetch_overview($mailbox,"1:*", FT_UID); // This is fetching an overview of all emails

// Output as a table:
$return = '<table width="100%">
<tr>
<td><b>#</b></td>
<td><b>From</b></td>
<td><b>Date / Time</b></td>
<td><b>Subject</b></td>
</tr>';
$size = count($mails); // Number of messages
$cmsg = 0; // This is used to have a continously number
for($i=$size-1;$i>=0;$i--)
{
$cmsg++;
$value = $mails[$i];
$return .= '<tr><td>'.$cmsg.'</td><td>'.$value->from.'</td><td>'.$value->date.'</td><td><a href="'.$_SERVER['PHP_SELF'].'?id='.$value->msgno.'">'.$value->subject.'</a></td></tr>';
}
$return .= '</table>';
imap_close($mailbox);
return $return;
}

function show_mail($id, $server, $account, $password)
{
$mailbox = imap_open("{".$server.":110/pop3}INBOX", $account, $password);
$mail = imap_body($mailbox,$id, FT_UID);
// This is fetching the email..
$mail = htmlentities(stripslashes($mail));
/* stripslashes is stripping the slashes, htmlentities transforms all of the non-regular symbols to their equal html code expression. */
$return = '<pre>'.$mail.'</pre>';
imap_close($mailbox);
return $return;
}

if(isset($_GET['id']))
if(is_numeric($_GET['id']))
echo show_mail($_GET['id'], "pop.gmx.net", "xxx", "xxx");
else
echo 'wrong parameter';
else
echo show_mails("pop.gmx.net", "xxx", "xxx");
?>

Ist ein Code-Schnipsel aus dem Internet, der bei anderen Leuten anscheinend funktioniert.
dein Codebeispiel mit dem var_dump löst bei mir den gleichen Fehler aus.
 
Nein, leider nicht.
Ich habe jetzt timestamps in eine Textdatei schreiben lassen. Dies macht er auch, aber nur bis er zum imap_open kommt.
 
Hi,

tja, schwierig, wenn man den Fehler nicht nachvollziehen kann. Vielleicht schaust Du mal in Deine Serverlogs, ob da etwas Aufschlussreiches drinsteht...

Es wird übrigens im Allgemeinen nicht gerne gesehen, wenn jemand mehrere Foren gleichzeitig mit dem selben Problem beschäftigt, schon gar nicht, wenn nichtmal erwähnt wird, welche Tipps man schon an welchen anderen Stellen bekommen hat.

LG
 
Das mit dem anderen Forum tut mir Leid, wollte halt, dass das Problem möglichst schnell gelöst wird.
Tips aus dem anderen Forum, die allesamt nichts gebracht haben bis jetzt:
- Anderen Browser probiert
- error_reporting(E_ALL|E_STRICT);
- timestamps in Textdatei geschrieben ( Er kommt nur bis zum imap_open und bearbeitet den Code dann nicht weiter
- versucht auf andere Email-Server zuzugreifen, was auch nicht geht.

Aus den Logs werde ich nicht schlau... in den Error-Logs stehen Einträge wie:
[Thu May 21 18:47:41 2009] [error] [client 79.196.130.152] File does not exist: /is/htdocs/wp1041204_FD12104J5G/www/favicon.ico, referer: http://www.graf-scherfede.de/test/Mail/mail2.php


Habe mal bei meinem Anbieter geguckt... da steht zum Thema imap_open:

"Skript-Zugriff auf E-Mail-Postfächer (POP3/IMAP)

Hier wird beschrieben, wie Sie mit PHP auf die E-Mail-Postfächer eines Servers zugreifen können. Dies ist per POP3 und IMAP auf die gleiche Weise möglich.

Bitte beachten Sie, dass dies _nicht_ mit PHP5 möglich ist!
Dies ist ganz einfach, verwenden Sie dazu den imap_open - Befehl (egal ob POP3 oder IMAP). Ein typischer Aufruf könnte so aussehen: "

Ich verstehe nicht, warum es mit PHP 5 nicht möglich sein soll. Im PHP Manual steht ja auch drin, dass es mit PHP 5 geht.
 
Zuletzt bearbeitet:
Das fehlende favicon.ico kannst du erstmal ignorieren. Poste mal die Ausgabe von

PHP:
echo "display_errors = " . ini_get('display_errors') . "<br/>";
echo "log_errors = " . ini_get('log_errors') . "<br/>";
 
Zurück