read open mailbox imap_open example couldn conexion php ssl ubuntu gmail imap

open - Conexión a Gmail a través de IMAP con PHP-Falló el contexto SSL



imap_open(): couldn''t open stream (8)

  1. Primero, habilite aplicaciones menos seguras en su cuenta de Gmail: https://myaccount.google.com/lesssecureapps

  2. Utilice esta configuración para crear la conexión IMAP:

    $imap_connection = imap_open(''{imap.gmail.com:993/imap/ssl/novalidate- cert}INBOX'', ''YOUR GMAIL USER'', ''YOUR GMAIL PASSWORD'');

Nota : INBOX es su imbox principal, por ejemplo, puede acceder a los elementos enviados con: INBOX. Enviado en su conexión.

Estoy intentando conectarme a Gmail a través de IMAP con PHP ejecutándose en Apache. Esto es en un sistema Ubuntu 9.04. Tengo algún tipo de problema de configuración de PHP que impide que esto funcione. Primero, esto es lo que hice para configurar IMAP para PHP:

sudo apt-get install libc-client2007b libc-client2007b-dev sudo apt-get install php5-imap sudo /etc/init.d/apache2 start

Cuando ejecuto phpinfo (), obtengo los siguientes valores de imap:

IMAP c-Client Version: 2004 SSL Support: enabled Kerberos Support: enabled

Aquí está mi código de muestra:

<?php $connect_to = ''{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX''; $user = ''my gmail address''; $password = ''my gmail password''; $connection = imap_open($connect_to, $user, $password) or die("Can''t connect to ''$connect_to'': " . imap_last_error()); imap_close($connection); ?>

Cuando ejecuto este código, obtengo el siguiente resultado:

Warning: imap_open() [function.imap-open]: Couldn''t open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX in /var/www/clint/gmail/gmail.php on line 10 Can''t connect to ''{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX'': TLS/SSL failure for imap.gmail.com: SSL context failed

Tenga en cuenta que puedo hacer telnet para imap.gmail.com:993 desde esta computadora. También puedo conectar Evolution (lector de correo) a Gmail a través de IMAP y recuperar el correo sin problemas. Por lo tanto, no creo que esto sea un problema de firewall. Estoy bastante seguro de que tengo algo en PHP no configurado correctamente.

¿Algunas ideas?


Compruebe su configuración con phpinfo() y asegúrese de que vea --with-imap-ssl listado.


Ejecute su código desde la línea de comandos y vea si php escupe nuestros otros errores:

php -f gmail.php

En mi Ubuntu hice:

sudo apt-get install php5-imap

Y el sistema instalado: libc-client2007b mlock libc-client2007b mlock php5-imap

Entonces, ¿qué hay de desinstalar php5 y volver a instalar limpiamente.


Esto me ha funcionado después de un largo esfuerzo:

$ServerName = "{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox";


Me enfrentaba al mismo problema. Estoy usando windows y wamp y mi extensión "openSSl" de wamp está habilitada.

Eliminé este problema usando los siguientes pasos. Espero que esto también funcione para usted.

1) Inicie sesión a través de navegador a la cuenta de gmail.

2) Abra esta url " https://www.google.com/settings/security/lesssecureapps "

3) Haga clic en "activar"

4) intenta seguir el código

<?php set_time_limit(4000); // Connect to gmail //$imapPath = ''{imap.gmail.com:993/imap/ssl}INBOX''; $imapPath = ''{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX''; $username = ''[email protected]''; $password = ''Your-password''; // try to connect $inbox = imap_open($imapPath,$username,$password) or die(''Cannot connect to Gmail: '' . imap_last_error()); /* ALL - return all messages matching the rest of the criteria ANSWERED - match messages with the //ANSWERED flag set BCC "string" - match messages with "string" in the Bcc: field BEFORE "date" - match messages with Date: before "date" BODY "string" - match messages with "string" in the body of the message CC "string" - match messages with "string" in the Cc: field DELETED - match deleted messages FLAGGED - match messages with the //FLAGGED (sometimes referred to as Important or Urgent) flag set FROM "string" - match messages with "string" in the From: field KEYWORD "string" - match messages with "string" as a keyword NEW - match new messages OLD - match old messages ON "date" - match messages with Date: matching "date" RECENT - match messages with the //RECENT flag set SEEN - match messages that have been read (the //SEEN flag is set) SINCE "date" - match messages with Date: after "date" SUBJECT "string" - match messages with "string" in the Subject: TEXT "string" - match messages with text "string" TO "string" - match messages with "string" in the To: UNANSWERED - match messages that have not been answered UNDELETED - match messages that are not deleted UNFLAGGED - match messages that are not flagged UNKEYWORD "string" - match messages that do not have the keyword "string" UNSEEN - match messages which have not been read yet*/ // search and get unseen emails, function will return email ids $emails = imap_search($inbox,''UNSEEN''); $output = ''''; foreach($emails as $mail) { $headerInfo = imap_headerinfo($inbox,$mail); $output .= $headerInfo->subject.''<br/>''; $output .= $headerInfo->toaddress.''<br/>''; $output .= $headerInfo->date.''<br/>''; $output .= $headerInfo->fromaddress.''<br/>''; $output .= $headerInfo->reply_toaddress.''<br/>''; $emailStructure = imap_fetchstructure($inbox,$mail); //var_dump($emailStructure->parts); if(isset($emailStructure->parts)) { $output .= imap_body($inbox, $mail, FT_PEEK); } else { // } echo $output; $output = ''''; } // colse the connection imap_expunge($inbox); imap_close($inbox); ?>

LA MEJOR DE LAS SUERTES. :)



Si aún tienes problemas con esto en gmail, asegúrate de habilitar "Permitir acceso para aplicaciones menos seguras" en la página de configuración de seguridad de tus cuentas de Google.