Certificate error using IMAP in PHP

2019-02-04 14:56发布

I used up all possible combinations of hostname but I always either get a certificate error or just IMAP connection broken.

Certificate failure for imap.froiden.com: Server name does not match certificate: /O=imap.mailhostbox.com/OU=Go to https://www.thawte.com/repository/index.html/OU=Thawte SSL123 certificate/OU=Domain Validated/CN=imap.mailhostbox.com

Hostname which I used is '{imap.froiden.com}INBOX'. ANy suggestion to solve this error?

标签: php imap
3条回答
forever°为你锁心
2楼-- · 2019-02-04 15:40

I can confirm this is working well:

$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楼-- · 2019-02-04 15:43

In case you're using gmail, make sure you turn on "Allow access for less secure apps" in the account settings page of your google account for you to be able to access your gmail account using imap_open()

查看更多
我命由我不由天
4楼-- · 2019-02-04 16:00

The certificate is plain invalid. You should either connect to imap.mailboxhost.com:993/imap/ssl or contact the administrator of the mail server and ask for a valid certificate.

Note that while you can use the connection string imap.froiden.com:993/imap/ssl/novalidate-cert to skip certificate validation, you should not do so as that flag will allow any Man In The Middle attacker to read and write your email.

查看更多
登录 后发表回答