そのため、複数のメールボックスにアクセスできる汎用/アプリケーション/システム アカウント (用語は異なります) を持っています。私が使用するユーザー名は の形式<domain>/<username>/<mailbox>
であり、これが唯一の「普通ではない」ものです。次の行は、PHP 7.0.6 (私のラップトップ) では機能しますが、5.4.16 (開発サーバー) では機能しません。
$mbox = imap_open("<host>:993/ssl/novalidate-cert",
"<domain>/<username>/<mailbox>", <pass>,
NULL, array('DISABLE_AUTHENTICATOR' => 'GSSAPI'));
私が得るエラーは次のとおりです。
PHP 通知: 不明: IMAP サーバーを認証できません: AUTHENTICATE に失敗しました。(errflg=2) in Unknown 行 0
私が試したこと:
<domain>/<user>
機能するメールボックスの元のアカウント (形式のユーザー名)/debug
in$mailbox
とflag の使用OP_DEBUG
- どれも役に立たなかった- Python を使用してサーバーへのメッセージをデバッグします。これにより、ユーザー名が 3 セグメントの文字列として送信され、機能することも確認されます
- 後で選択できると思って 3 番目のセグメント (メールボックス) を削除すると、両方のケース/バージョンで認証が失敗する
質問:
- これはPHPのバグですか?
- これを行う他の方法はありますか?(PHPのバージョンは変更できません)
- どうにかしてメッセージ ログを有効にすることはできますか? (ルートがないため、tcpdump オプションはありません)