Connect to Gmail with PHP & IMAP

Makis picture Makis · Aug 26, 2015 · Viewed 25.2k times · Source

I have enabled OpenSSL and IMAP functions from my php.ini file and phpinfo() confirms it.

By using the code below i can connect to a Hotmail account but not to a Gmail account.(of course i change the $connect_to to point to 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);

The returned error is

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

Unfortunately i cannot find a complete tutorial of how to use the IMAP functions.

Any ideas, solutions or suggestions will be helpful.

Answer

Makis picture Makis · Aug 26, 2015

UPDATE:

After searching for my problem on the Internet, i did not found a solution that solves my problem completely. Although if

1) I use the insecure $connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';

2)And allow gmail to be accessed by less secured apps,

solves my problem for now.

Please check this https://support.google.com/accounts/answer/6010255?hl=en