web-dev-qa-db-ja.com

imap_open:メールサーバーへのストリームを開けませんでした

Notice:不明:mail.domain.comへの接続に失敗しました、143:行0のUnknownで接続がタイムアウトしました(errflg = 2)

imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')

ポート143は開いています。ファイアウォールの内側にいるわけではありません。サーバーは自己署名証明書を使用しています。

メールサーバーに接続できない理由が本当にわからない

どこでも検索しましたが、答えが見つかりませんでした。

15
DOZ

ご回答ありがとうございます。私の間違いは接続からではなく、メールが多すぎるときにサーバーをクラッシュさせるループでした:

imap_open("{mail.domain.com:143/novalidate-cert}INBOX", 'login', 'password')

$emails = imap_search($stream, 'UNSEEN');

rsort($emails);
foreach ($emails as $email_id) {
  imap_fetch_overview($stream, $email_id, 0);
} //that was the mistake when email number is too big!
8
DOZ

私の推測では、ssl(デフォルトのポート993)の背後にいるということです。

試して

imap_open("{mail.domain.com:993/imap/ssl/novalidate-cert}INBOX", 'login', 'password') or die('Cannot connect: ' . print_r(imap_errors(), true))

そのポートを開くことを忘れないでください

1
Adam Fischer

私の場合、これでうまくいきました。

imap_open("{mail.domain.com:110/pop3/notls}INBOX", 'login', 'password')
0
Carl

ライブラリを作成しました。
ホストで機能するかどうかわからない。
しかし、あなたは確かにそれを試すことができます。 http://vivoauthimap.vivsoftware.in/

0
Vivek Muthal