Я включил функции OpenSSL
и IMAP
из файла php.ini
и phpinfo()
подтверждает это.
Используя приведенный ниже код, я могу подключиться к учетной записи 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.
Любые идеи, решения или предложения будут полезны.
ОБНОВИТЬ:
После поиска моей проблемы в Интернете, я не нашел решения, которое полностью решает мою проблему. Хотя если
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=ru
Сначала проверьте правильность настроек даты и времени на вашем сервере.
Альтернативно попробуйте:
$connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX',
Это остановит его от проверки сертификата.
Я, вероятно, получаю downvotes от людей, которые говорят мне, что это плохая практика, так как это оставляет вас открытыми для человека в средних атаках. Что является правдой.