Ligar ao Gmail com o PHP & IMAP

activei as funções OpenSSL e IMAP do meu ficheiro php.ini e phpinfo() confirma-o.

usando o código abaixo posso ligar-me a uma conta Hotmail, mas não a uma conta Gmail.(claro que eu mudo o {[6] } para apontar para o Hotmail.)

$connect_to = '{imap.gmail.com:993/imap/ssl}INBOX';
$connection = imap_open($connect_to, $user, $password)
  or die("Can't connect to '$connect_to': " . imap_last_error());
imap_close($connection);

o erro devolvido é

Warning: imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl}INBOX in /opt/lampp/htdocs/webmail_client_practise/index.php on line 6
Can't connect to '{imap.gmail.com:993/imap/ssl}INBOX': Certificate failure for imap.gmail.com: unable to get local issuer certificate: /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
Notice: Unknown: Certificate failure for imap.gmail.com: unable to get local issuer certificate: /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA (errflg=2) in Unknown on line 0

infelizmente não consigo encontrar um tutorial completo de como usar as funções IMAP.

Quaisquer ideias, soluções ou sugestões serão úteis.

Author: Makis, 2015-08-26

3 answers

Actualizar:

Depois de procurar o meu problema na Internet, não encontrei uma solução que resolva completamente o meu problema. Apesar de

1) USO o inseguro $connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';

2) e permitir que o gmail seja acedido por less secured apps,

Por agora, resolve o meu problema.

Por Favor, verifique isto https://support.google.com/accounts/answer/6010255?hl=en

 14
Author: Makis, 2015-08-26 10:39:58

Primeiro verifique se as suas definições de data e hora no seu servidor estão correctas.

Em alternativa, tente:

$connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX',
Isto irá impedi-lo de tentar validar o certificado. Provavelmente receberei notas baixas de pessoas a dizer-me que isto é uma má prática, pois isto deixa-te aberto ao homem nos ataques do meio. O que é verdade.
 1
Author: Antony D'Andrea, 2015-08-26 09:17:22

Se você ficar bloqueado, isso pode ser porque o google vê um login a partir de um novo dispositivo.

Vá à sua conta do google e verifique https://myaccount.google.com/device-activity e deixe-os saber que o 'dispositivo desconhecido está ok para usar'.

 1
Author: Johan Velthuis, 2018-04-24 15:20:23