php7.0-imap,PHP imap_open适用于7.0.6但不适用于5.4.16

所以,我有一个通用/应用程序/系统帐户(术语各不相同),可以访问多个邮箱.我使用的用户名格式为< domain> /< username> /< mailbox>这是唯一“与众不同”的事情.以下行适用于PHP 7.0.6(我的笔记本电脑),但不适用于5.4.16(开发服务器):

$mbox = imap_open(":993/ssl/novalidate-cert",

"//", ,

NULL, array('DISABLE_AUTHENTICATOR' => 'GSSAPI'));

我得到的错误是:

PHP Notice: Unknown: Can not authenticate to IMAP server: AUTHENTICATE failed. (errflg=2) in Unknown on line 0

我尝试过的:

>邮箱的原始帐户(< domain> /< user>格式的用户名)有效

>在$mailbox和OP_DEBUG标志中使用/ debug – 其中没有任何有用的东西

>使用python调试消息到服务器.这将验证用户名是否以三段字符串形式发送,并且也有效

>删除第3段(邮箱)以后我可以选择它 – 导致两种情况/版本中的身份验证失败

问题:

>这是一个PHP错误吗?

>有没有其他方法可以做到这一点? (我无法更改PHP版本)

>我能以某种方式启用消息记录吗? (没有root所以没有tcpdump选项)

解决方法:

在我看来,你可以尝试做这样的事情:

$mbox = imap_open(":993/ssl/novalidate-cert",

"//", ,

NULL, array('DISABLE_AUTHENTICATOR' => 'GSSAPI')) or

die(var_dump(imap_errors()));

您应该能够看到更多错误.接下来,您可以尝试切换到PLAIN而不是GSSAPI,并且可能尝试将n_retries设置为1并且最后想一想,添加关于IMAP的标志.

$mbox = imap_open(":993/imap/ssl/novalidate-cert",

"//", ,

NULL, 1, array('DISABLE_AUTHENTICATOR' => 'PLAIN')) or

die(var_dump(imap_errors()));

我认为Exchange存在问题,不允许它不支持的身份验证协议.如果你在win上运行它并且它的工作原理和你的开发环境在Linux上,我几乎可以肯定这就是问题所在.

标签:php,imap,exchange-server,imap-open

来源: https://codeday.me/bug/20190711/1430560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值