在PHP中使用IMAP的证书错误

时间:2011-10-25 15:31:06

标签: php imap

我用尽了主机名的所有可能组合,但我总是得到证书错误或只是IMAP连接坏了。

  

imap.froiden.com的证书失败:服务器名称不匹配   证书:/O=imap.mailhostbox.com/OU=转到   https://www.thawte.com/repository/index.html/OU=Thawte SSL123   certificate / OU = Domain Validated / CN = imap.mailhostbox.com

我使用的主机名是“{imap.froiden.com}INBOX”。有什么建议来解决这个错误?

3 个答案:

答案 0 :(得分:25)

证书无效。您应该连接到imap.mailboxhost.com:993/imap/ssl或联系邮件服务器的管理员并要求提供有效的证书。

请注意,虽然可以使用连接字符串imap.froiden.com:993/imap/ssl/novalidate-cert来跳过证书验证,但应该不要这样做,因为该标志将允许任何{{3攻击者读取和写入您的电子邮件。

答案 1 :(得分:7)

我可以证实这种方法运作良好:

$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);
}

答案 2 :(得分:1)

如果您使用的是Gmail,请务必启用&#34;允许访问不太安全的应用&#34;在您的Google帐户的帐户设置页面中,您可以使用imap_open()

访问您的Gmail帐户