2011-10-25 5 views
13

すべての可能なホスト名の組み合わせを使いましたが、私は常に証明書エラーまたはIMAP接続が壊れています。PHPでIMAPを使用した証明書のエラー

imap.froiden.comのための証明書の失敗: https://www.thawte.com/repository/index.html/OU=Thawte SSL123 証明書/ OU =ドメイン検証済み/ CN = IMAPに/O=imap.mailhostbox.com/OU=Go:サーバー名が 証明書と一致していません.mailhostbox.com

私が使用したホスト名は「{imap.froiden.com}INBOX」です。このエラーを解決するための提案?

+1

証明書が 'imap.mailhostbox.com'に対して発行されました - SSL接続の場合、リクエストされたホスト名と証明書が発行されたホスト名が一致する必要があります。これらの警告/エラーが発生します。ホスト名のミスマッチ(悪意のある設定)は、誰かが何かを偽造/偽造しようとしていることを意味します。 –

+0

@MarcBまあ、私はすべての組み合わせを試しましたが、** imap.froiden.com:993/imap/ssl **のように動作しません。ホスト上で設定する必要があるものはありますか? –

+0

imap.mailboxhost.com:993/imap/sslを使用する必要があります。証明書が正しいと仮定し、実際にはimap.mailhostbox.comという名前のマシンから提供されています。 –

答えて

19

証明書が無効です。 imap.mailboxhost.com:993/imap/sslに接続するか、メールサーバーの管理者に連絡して、有効な証明書を要求する必要があります。あなたは証明書の検証をスキップするように接続文字列imap.froiden.com:993/imap/ssl/novalidate-certを使用することができますしながら、そのフラグは、任意のMan In The Middle攻撃者が読んで、あなたの電子メールを書くことができますように、あなたがそうはならないことを

注意。

+0

ありがとうございます、 '{imap.example.com/ssl/novalidate-cert} INBOX'が動作しました – michalzuber

4

私はこれがうまく機能しているを確認することができます:Gmailを使用している場合は

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

を、あなたがのためにGoogleアカウントのアカウント設定ページで「安全性の低いアプリのためのアクセスを許可する」をオンにしてくださいimap_open()を使ってGmailアカウントにアクセスできるようにするには

関連する問題