【问题标题】:Can't connect to Office 365 using php imap_open无法使用 php imap_open 连接到 Office 365
【发布时间】:2018-12-04 14:12:06
【问题描述】:

我正在尝试使用 PHP Imap 连接到 Office 365,但它无法连接到 Office 365。对于 gmail 和其他电子邮件主机,一切正常,但在 Office 365 上我得到一个无法验证(我确定电子邮件和密码正确)。

服务器具有 SSL 证书,并且 IP 地址已在 Office 中列入白名单。我认为这与主机名有关。

这是我目前正在尝试的:

{outlook.office365.com:993/imap/ssl}

也试过了:

{outlook.office365.com:993/imap/ssl/novalidate-cert}

还有

{outlook.office365.com:993/ssl}

更新 看起来这可能是因为这是基于屏幕截图的共享帐户。这会改变我的主机名吗?

【问题讨论】:

  • 如果帐户有两步验证,您将需要生成应用程序专用密码。
  • 感谢@Max,它没有启用两步验证。
  • 根据我的发现审查了这个答案,但我仍然收到身份验证错误:stackoverflow.com/questions/28481028/…

标签: php ssl office365 imap


【解决方案1】:

请尝试使用 /authuser 方法。

imap_open("{outlook.office365.com:993/imap/ssl/authuser=user@maindomain.com}", "user@maindomain.com", "password");

【讨论】:

  • 收到错误:Error opening mailbox: Can not authenticate to IMAP server: AUTHENTICATE failed.我刚刚更新了问题,看起来这可能是一个共享地址,这会影响我的主机名吗?
  • 在这种情况下,请同时使用以下 (/user=) 指定用户: imap_open("{outlook.office365.com:993/imap/ssl/authuser=user@maindomain.com/ user=shared@anotherdomain.com}", "user@maindomain.com", "密码");
【解决方案2】:

如果不验证证书,请在连接中使用“novalidate-cert”

 imap_open("{outlook.office365.com:993/imap/ssl/novalidate-cert/authuser=$user/user=$user}", $user, $pass);

这应该可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-08
    • 2017-04-07
    • 2017-09-14
    • 2012-04-27
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多