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.3 answers
Actualizar:
Depois de procurar o meu problema na Internet, não encontrei uma solução que resolva completamente o meu problema. Apesar de1) 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 Favor, verifique isto https://support.google.com/accounts/answer/6010255?hl=en
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.
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'.