2015-08-26 5 views
8

Я включил OpenSSL и IMAP функции из моего файла php.ini и phpinfo() подтверждает это.Подключиться к Gmail с PHP и IMAP

Используя этот код я могу подключиться к учетной записи Hotmail, но не к учетной записи Gmail. (Конечно, я изменить $connect_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); 

Возвращается ошибка

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 

К сожалению, я не могу найти полное руководство по использованию функций IMAP.

Любые идеи, решения или предложения будут полезны.

+2

Вы пропустили «{» {imap.gmail.com:993/imap/ssl}INBOX –

+1

Я собирался спросить, если вы можете получить доступ к любой другой папке, кроме INBOX –

+0

У меня есть обновил сообщение с новой ошибкой, @SarDauMort - Спасибо, я отредактировал свою ошибку. – Makis

ответ

14

UPDATE:

После поиска моей проблемы в Интернете, я не нашел решение, которое решает мою проблему полностью. Хотя если

1) Я использую небезопасный $connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';

2) и позволяют Gmail, чтобы получить доступ less secured apps,

решает мою проблему сейчас.

Пожалуйста, проверьте это https://support.google.com/accounts/answer/6010255?hl=en

1

Сначала проверьте правильность настроек даты и времени на вашем сервере.

В качестве альтернативы попробуйте:

$connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX', 

Это остановит его от попыток проверить сертификат.

Я, вероятно, получаю downvotes от людей, говорящих мне, что это плохая практика, так как это дает вам возможность открыться человеку в ближних атаках. Что является правдой.

+0

Ха-ха! Да, я знаю! 'Предупреждение: imap_open(): Не удалось открыть поток {imap.gmail.com::993/imap/ssl/novalidate-cert}INBOX в /opt/lampp/htdocs/webmail_client_practise/index.php в строке 6 Can ' t connect to {{imap.gmail.com::993/imap/ssl/novalidate-cert}INBOX: невозможно открыть почтовый ящик {imap.gmail.com::993/imap/ssl/novalidate-cert}INBOX: недействительная удаленная спецификация Примечание: Неизвестно: не удается открыть почтовый ящик {imap.gmail.com::993/imap/ssl/novalidate-cert}INBOX: неверная удаленная спецификация (errflg = 2) в Unknown on line 0' this is my новая ошибка – Makis

+0

Вы положили два двоеточия ... Или у меня в моем ответе @Makis, извините! –

+0

и продолжается ... 'Предупреждение: imap_open(): Не удалось открыть поток {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX в /opt/lampp/htdocs/webmail_client_practise/index.php в строке 6 Не удается подключиться к '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: невозможно выполнить проверку подлинности на сервере IMAP: [ALERT] Пожалуйста, войдите в свой веб-браузер: https: //support.google.com/mail/acco ........... – Makis

Смежные вопросы