Ошибка сертификата с использованием IMAP в PHP
Я использовал все возможные комбинации имени хоста, но я всегда либо получаю ошибку сертификата, либо просто поврежденное соединение IMAP.
Ошибка сертификата для imap.froiden.com: имя сервера не совпадает сертификат:/O=imap.mailhostbox.com/OU=Go to https://www.thawte.com/repository/index.html/OU=Thawte SSL123 сертификат /OU = Домен проверен /CN = imap.mailhostbox.com
Имя хоста, которое я использовал, это "{imap.froiden.com}INBOX
". Любое предложение решить эту ошибку?
Ответы
Ответ 1
Сертификат недействителен. Вы должны либо подключиться к imap.mailboxhost.com:993/imap/ssl
, либо обратиться к администратору почтового сервера и запросить действительный сертификат.
Обратите внимание, что, хотя вы можете использовать строку подключения imap.froiden.com:993/imap/ssl/novalidate-cert
, чтобы пропустить проверку сертификата, вы не должны этого делать, поскольку этот флаг позволит любому Man In The Middle, чтобы читать и писать электронную почту.
Ответ 2
Я могу подтвердить, что это хорошо работает:
$mb = imap_open("{phoenix.srv.spletnasoba.si:993/imap/ssl/novalidate-cert}","username", "password" );
$emails = array();
$messageCount = imap_num_msg($mb);
for( $MID = 1; $MID <= $messageCount; $MID++ )
{
$EmailHeaders = imap_headerinfo( $mb, $MID );
foreach($EmailHeaders as $key => $value) {
if (validateEmail($value)) {
$emails[$value] = $key;
echo $value."\n";
}
}
}
function validateEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL);
}
Ответ 3
Если вы используете gmail, убедитесь, что вы включили "Разрешить доступ для менее безопасных приложений" на странице настроек учетной записи вашей учетной записи google, чтобы вы могли получить доступ к своей учетной записи gmail с помощью imap_open()