因此,我有一个通用/应用程序/系统帐户(术语各不相同),可以访问多个邮箱。我使用的用户名格式为<domain>/<username>/<mailbox>
,这是唯一的&#34;不同寻常的&#34;事情。以下行适用于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)在第0行的未知中
我尝试过:
<domain>/<user>
格式的用户名)/debug
和$mailbox
标记中使用OP_DEBUG
- 其中没有任何有用的内容问题:
答案 0 :(得分:0)
在我看来,你可以尝试这样做:
$mbox = imap_open("<host>:993/ssl/novalidate-cert",
"<domain>/<username>/<mailbox>", <pass>,
NULL, array('DISABLE_AUTHENTICATOR' => 'GSSAPI')) or
die(var_dump(imap_errors()));
您应该能够看到更多错误。接下来,您可以尝试切换到PLAIN而不是GSSAPI,并且可能尝试将n_retries设置为1并且最后想一想,添加关于IMAP的标记。
$mbox = imap_open("<host>:993/imap/ssl/novalidate-cert",
"<domain>/<username>/<mailbox>", <pass>,
NULL, 1, array('DISABLE_AUTHENTICATOR' => 'PLAIN')) or
die(var_dump(imap_errors()));
我认为Exchange存在问题,不允许它不支持的身份验证协议。如果你在win上运行它并且它的工作原理和你的开发环境在Linux上,我几乎可以肯定这就是问题所在。