IMAP über PHP ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IMAP über PHP ...

    Hallo an alle.

    Ich hier folgendes Skript, welches mir per IMAP von dem angegebenen Mailserver die eMails abruft, fortlaufend darstellt und mir sogar ermöglicht, die eMails anschauen. Allerdings stimmt da etwas nicht mit der Verbindung zum eMail-Server. Ich kann zwar 3-4 Mal mich durch die eMails klicken, aber dann folgt der Fehler

    Code:
    Warning: imap_open(): Couldn't open stream {pop.gmx.net:110/pop3} in
    c:\programme\apache group\apache\htdocs\test\caja\index.php on line 19
    Gibt es eine Möglichkeit, die Verbindung zum eMail-Server "offenzuhalten"?

    PHP-Code:
    <html>
    <head>
    <style type="text/css">
    <!--
    .ntext{font-family:Verdana,Arial,Helvetica,Sans-Serif;font-size:11px;}
    a:link {color: #990000; text-decoration: none}
    a:visited {color: #990000; text-decoration: none}
    a:hover {color: #990000; text-decoration: underline}
    //-->
    </style>
    </head>
    <body>

    <?
        // User-Daten
        $user = "user";
        $passwort = "ipasswort";
        // Connect to Mailbox
        $mailbox = imap_open("{pop.gmx.net:110/pop3}","$user","$passwort")
                    or die("<span class=\"ntext\">Das eMail-Konto ist gerade nicht abrufbar.<br></span>");

        switch($do)
        {
            default:
                // Mail holen
                $check = imap_check($mailbox);
                if($check)
                {
                    ?>
                    Login-Zeit: <?=$check->Date;?><br>
                    eMails ingesamt: <?=$check->Nmsgs;?><br>
                    Neue eMails: <?=$check->Recent;?><br><br>
                    <?
                } else {
                    print "imap_check() failed: " . imap_last_error() . "<br><br>\n";
                }
                // Mail auslesen
                $nMessages = imap_num_msg($mailbox);
                for($i = 1; $i <= $nMessages; $i++)
                    {
                        $header = imap_header($mailbox, $i);
                        $datum = $header->Date;
                        $m_id = $header->message_id;
                    $empfaenger = $header->toaddress;
                    $betreff = $header->subject;
                    $absender = $header->from[0]->personal;
                    $absender_email = $header->from[0]->mailbox."@".$header->from[0]->host;
                    $body = imap_body($mailbox,$i);
                    $text_koerper = $body;
                    $text_koerper = str_replace("\r\n", "<br>", $text_koerper);
                    $fheader = imap_fetchheader($mailbox,$i);
                    ?>
                    <span class="ntext"><b><a href="<?=$PHP_SELF;?>?do=show&id=<?=$i;?>"><?=$betreff;?></a></b><br></span>
                    <span class="ntext"><?=$absender_email;?></span><br><br>
                    <?
                }
                ?><a href="<?=$PHP_SELF;?>?do=logout">Logout</a><br><?
                break;

            case('show'):
                $header = imap_header($mailbox, $_GET['id']);
                    $datum = $header->Date;
                $m_id = $header->message_id;
                $empfaenger = $header->toaddress;
                $betreff = $header->subject;
                $absender = $header->from[0]->personal;
                $absender_email = $header->from[0]->mailbox."@".$header->from[0]->host;
                $body = imap_body($mailbox,$_GET['id']);
                $text_koerper = $body;
                #$text_koerper = str_replace("\r\n", "<br>", $text_koerper);
                $fheader = imap_fetchheader($mailbox,$_GET['id']);
                echo $betreff.'<br><br><pre>'.$text_koerper.'</pre><br><br><a href="'.$PHP_SELF.'">zur&uuml;ck</a><br>';
                break;
                
            case('logout'):
                ?>Sie haben sich erfolgreich ausgeloggt.<br><a href="<?=$PHP_SELF;?>">zur&uuml;ck</a><br><?
                imap_close($mailbox);
                break;
        }
    ?>

    </body>
    </html>
    Danke im Voraus

    Innuendo

  • #2
    gehört das nicht eignetlich zu deinem anderen thread...

    aber egal. wenn du bei gmx zu oft versuchst, auf den mailserver zu connecten, wirst du eine zeit lang ausgeschlossen. du kannst also erst nach einiger zeit nichtstun wieder deine mails anrufen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      1. Ich wüsste nicht, was IMAP mit POP zu tun hat.
      2. Ich weiß auch, dass man nach 5-maligem Login für eine Zeitlang das Konto nicht abrufen kann.
      3. War meine Frage eine ganz andere: Wie kann man die Verbindung zum eMail-Server offenhalten, ohne, dass er jedesmal sich neu einloggt? Am besten jede ankommende eMail in einer Datenbank zwischenspeichern, dadurch alle eMails auf dem Server als "gelesen" markieren und erst dann, wenn der Nutzer auf "Empfangen" klickt, die eMails abrufen?

      Kommentar


      • #4
        1. die imap funktionen von php unterstützen auch pop3

        2. ok

        3. du machst den login beim start des php.scriptes. wenn du dann auf die nächste seite von dir wechselst, muss du den connect wieder aufbauen.
        tipp: stelle alles auf einer seite dar, du hast keine oder weniger probleme ...
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Danke. Werd's versuchen.

          Kommentar

          Lädt...
          X