Conectare Google IMAP

Salut,

Vreau sa imi citesc emailul prin google, folosind php, evident.
Am deja un script, care citeste o casuta de email, prin IMAP, de pe domeniul meu.
Am luat datele pt google si le-am inlocuit.
Codul il puteti vedea aici:

Ce se intampla. Sta pur si simplu si incearca sa se conecteze, pana cand da timeout, si vad un ecran alb.
Dubios este ca da timeout dupa fix 120 de secunde. Eu am un ssd, max time out e 350 de secunde.
Am erorile pornite de forma:

	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);
	error_reporting(E_ALL);

Codul de conectare e foarte simplu, e de genul:

/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

Ce am incercat pana acum:
Am incercat sa activez Access for less secure apps has been turned on
si am reusit.
Am incercat 2 url-uri de conectare:
Pe acesta, din exemplu:
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';

dar si pe acesta:

$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
care ar fi trebuit sa mearga cu optiunea “Access for less secure apps…”

Am verificat daca am openssl activat. E activat.
Am verificat cu asta:

 if(!extension_loaded('openssl'))
    {
		
        throw new Exception('This app needs the Open SSL PHP extension.');
    }

Si m-am uitat si in phpinfo()

Momentan sunt cam in pana de idei.

Va multumesc anticipat.

Ai verificat dacă ai modulul imap activat? Ştiam că nu e activat by default.

e activat. am spus mai sus ca am folosit acelasi cod pt a citi o casuta de email de pe domeniul meu, prin imap

Atunci ar putea fi ceva de la firewall - adaugă o regulă pentru portul 993.

aruncă o privire şi aici:

https://accounts.google.com/b/0/DisplayUnlockCaptcha
https://security.google.com/settings/security/apppasswords

De asemenea în gmail la setări trebuie să activezi IMAP.

1 Like

Cred că @Mentalismus s-a referit la activarea imap în gmail

2 Likes

e si asta activat. sorry am uitat sa precizez

Am încercat fix exemplul lui David Walsh și merge fără probleme.

Dacă introduc o parolă greșită, arată eroare imediat.

Durează mult (~40 de secunde) dacă nu pun portul bun.

Ceea ce duce la o altă posibilitate: să ai 993 blocat din firewall/router/ISP, iar domeniul tău să funcționeze pe un alt port.

2 Likes

La această posibilitate m-am gândit şi eu - ori e portul blocat din firewall, ori e conectat pe mai multe conturi şi nu a dezactivat captcha pe cel care trebuie.

Deloghează-te de pe toate conturile, apoi accesează link-ul ăsta folosind contul respectiv de gmail: http://www.google.com/accounts/DisplayUnlockCaptcha

3 Likes

Va multumesc baieti.
Asta cu portul pare a fi problema. Am sunat la hosting, si nici ei nu se pot conecta.
Au zis ca investigheaza problema astazi.

3 Likes

Salut din nou.
Am reusit sa ma conectez. Problema e cu totul alta. E ingrozitor de incet sa te conectezi la gmail.
Folosind tot scriptul lui David Walsh, si folosind aceleasi conditii de testare, adica afisez ultimele 10 emailuri, si iau toate emailurile de azi(IMAP nu permite sa filtrezi decat pe zile…din pacate)…am urmatoarele rezultate.

Din propria casuta postala, 0.74sec.
Din gmail, 6.24sec.

Estimarea de timp o fac cu o extensie de chrome. Stiu ca nu e cea mai precisa, dar cu siguranta, raportul ramane.
E aprox de 10 ori mai incet gmail.
De ce?
Ar trebui sa fie la fel de rapid, nu?

asta pare interesant.

Nu merge nici varianta asta.
Am pus ip-ul, am adaugat /no-certificate dupa ssl. Tot mult(5 secunde imi ia)…

Poate mai aveti voi idei…

Foloseste API-ul de gmail direct, nu prin IMAP:
https://developers.google.com/gmail/api/v1/reference/users/messages
Asta ar trebui sa mearga repede, oricum o sa te lovesti de problema de rate limiting daca faci polling agresiv.
https://developers.google.com/gmail/api/v1/reference/quota

1 Like

Multumesc pt raspuns Horatiu.
Am folosit api-ul de google si m-am lovit exact de problema ta. Si nu e rapid deloc, e lent rau.
Nu e ce imi trebuie mie.


Primul caz, cel incet, e gmail IMAP.
Am primt multe sfaturi, foarte bune de altfel, pentru a imbunatati viteza, in general. Le voi aplica cu siguranta.
Insa mai intai vreau sa trec de etapa asta.

Sunt valori normale, acestea?

Daca mi-ar spune cineva ca sunt normale, as merge mai departe. Dar mi se par nefiresc de mari timpii de la google.