conectar gmail a través de php imap? error de certificado de emisor local

Necesito conectarme a una cuenta de Gmail a través de IMAP usando PHP . Tengo un código de trabajo, pero cuando bash establecer una conexión, recibo el siguiente error:

Advertencia: imap_open () [function.imap-open]: no se pudo abrir la transmisión {imap.gmail.com:993/ssl}[Gmail]/Todo el correo en /home/demoosiz/public_html/goqlue/email.php en línea 31
No se puede conectar a Gmail: Error de certificado para imap.gmail.com: no se puede obtener el certificado de emisor local: / C = US / O = Google Inc / CN = Google Internet Authority

mi código está debajo

 <?php /* connect to gmail */ $hostname = '{imap.gmail.com:993/ssl}[Gmail]/All Mail'; $username = 'hidden'; $password = 'hidden'; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error()); /* grab emails */ $emails = imap_search($inbox,'ALL'); /* if emails are returned, cycle through each... */ if($emails) { /* begin output var */ $output = ''; /* put the newest emails on top */ rsort($emails); /* for every email... */ foreach($emails as $email_number) { /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,2); /* output the email header information */ $output.= '
seen ? 'read' : 'unread').'">'; $output.= ''.$overview[0]->subject.' '; $output.= ''.$overview[0]->from.''; $output.= 'on '.$overview[0]->date.''; $output.= '
'; /* output the email body */ $output.= '
'.$message.'
'; } echo $output; } /* close the connection */ imap_close($inbox); ?>

Esto parece ser un problema de certificado.

No te digo cuál es el problema del certificado ni cómo resolverlo.

Sin embargo, puede dejar su cuenta de Gmail abierta a los ataques al ignorar ese problema y deshabilitar la validación del certificado :

 $hostname = '{imap.gmail.com:993/ssl/novalidate-cert}[Gmail]/All Mail'; 

No se puede conectar a Gmail: Error de certificado para imap.gmail.com: no se puede obtener el certificado de emisor local: / C = US / O = Google Inc / CN = Google Internet Authority

El sistema en el que ejecuta el código falta ese certificado. No hay mucho más que pueda decirse sobre esto con la información que proporcionó con su pregunta. Consulte la documentación del sistema operativo que tiene sobre cómo instalar certificados y cómo obtener el certificado necesario.

Ver también:

  • Error de certificado al usar IMAP en PHP