2009-06-25 17 views
0

Ich muss E-Mails von Gmail lesen, aber ich kann nicht mit Gmail Pop3-Server verbinden. Kann mir hier jemand helfen?Hilfe mit Gmail-Nachricht lesen mit PHP

Hier ist der Code:

$pop3 = new POP3; 
$pop3->server = 'pop.gmail.com'; 
$pop3->user = 'username'; 
$pop3->passwd = 'password'; 
$pop3->debug = true; 
$pop3->pop3_connect() 

Das Ergebnis:

Warning: fsockopen() [function.fsockopen]: unable to connect to pop.gmail.com:110 (Connection timed out) in /public_html/cron/pop3.php on line 64 

Dank

Antwort

1

Nach dieser Seite (connecting to Gmail using Outlook Express), müssen Sie Port 995 für POP3-Zugriff auf Google Mail verwenden, Außerdem muss SSL aktiviert sein.

Wikipedia auch states this:

E-Mail-Clients können POP3-Datenverkehr mit Transport Layer Security (TLS) oder Secure Sockets Layer (SSL) verschlüsselt werden. Eine TLS/SSL-Verbindung wird mit dem Befehl STLS ausgehandelt. Einige Clients und Server, wie Google Google Mail, verwenden stattdessen die veraltete Alternative-Port-Methode, die den TCP-Port 995 (POP3S) verwendet.

0

Ich bin mir nicht sicher, ob es Ihnen helfen wird, aber GMAIL hat eine ATOM feed. Ich schrieb ein PHP-Skript, um den Atom-Feed mit CURL herunterzuladen, so dass ich meine E-Mails auf meinem veralteten Handy abrufen konnte, das nur sehr einfaches HTML unterstützte. Je nachdem, was Sie tun möchten, ist es möglicherweise einfacher, den ATOM-Feed herunterzuladen und zu verarbeiten, als mit dem POP-Server zu verbinden.

0

Ich weiß nicht, welche Klasse Sie verwenden - aber zum Beispiel wird mit Daniel Lemos 'package unten gezeigt. Der Schlüssel ist die Wahl des richtigen Ports (995) und der richtigen Verschlüsselungsmethode (TLS wird auf "True" für das von Ihnen verwendete pop3-Paket gesetzt). Sie könnten beispielsweise Folgendes verwenden, um die Verbindung zu initiieren. Kein großer Fan davon, wie diese Klasse aufgebaut ist, oder der Beispielcode (viele verschachtelte if-Anweisungen), aber es macht den Job.

$pop3=new pop3_class(); 
$apop=0; 
$pop3->authentication_mechanism="USER"; 
$pop3->debug=0; 
$pop3->html_debug=1; 
$pop3->join_continuation_header_lines=1; 
$pop3->hostname = "pop.gmail.com"; 
$pop3->port = 995; // The port that gmail uses... 
$pop3->tls = 1; // This is encryption 
$user = "someuser"; 
$password = "some password"; 

if(!empty($error=$pop3->Open())){ 
    die("Something terrible happened..."); 
} 

$pop3->Login($user,$password,$apop); 
0

Ich denke, es gibt zwei einfache Möglichkeiten, um Ihre E-Mail:

  • Cron Atom-Feed wie Kibbee sagt. Aber dann haben Sie eine kleine Verzögerung zwischen dem Senden der Nachricht und dem Abrufen der Nachricht.

  • Verwenden Sie http://smtp2web.com/, die Ihre E-Mail auf Ihre Website posten wird, was eine viel kürzere Verzögerung bedeutet. Offcourse Privatsphäre sollte nicht entscheidend sein, weil Ihre Post intermediär passieren wird.