php imap_open与microsoft exchange(outlook web app)

时间:2017-05-03 16:05:57

标签: php exchange-server outlook-web-app imap-open

我工作的公司使用Outlook Web App从Lotus Notes迁移到Microsoft Exchange。使用Lotus Notes,自2014年以来,我的PHP脚本运行良好。自从转移到MS Exchange后,PHP的imap_open无法再访问此邮件帐户。

我的PHP代码如下所示:

$emHOST = '{mail.company.com/tls/novalidate-cert}';
$emUSER = 'e-mail@company.com';
$emPASW = 'password';
$emPOP = imap_open($emHOST, $emUSER, $emPASW);
print_r(imap_errors());

无论我通过PHP尝试什么,我都会失败'

Array
(
    [0] => LOGIN failed.
    [1] => LOGIN failed.
    [2] => LOGIN failed.
    [3] => Too many login failures
)

我尝试使用/ssl代替/tls但是在端口993上超时。

但是,我可以通过网络浏览器中的https://mail.company.com/owa使用相同的用户名和密码登录。

有没有人有一些提示让我再次运行这个东西? 谢谢!

2 个答案:

答案 0 :(得分:0)

使用MS Exchange IMAP或POP3通常不会像Microsoft here for IMAP中提到的那样启用:

  

默认情况下,两个IMAP4服务,即Microsoft Exchange IMAP4   服务和Microsoft Exchange IMAP4后端服务,不是   在运行Microsoft Exchange Server 2013的计算机上启动。您必须   启动这两项服务以允许您的电子邮件客户端连接   使用IMAP4进行交流。当这些服务运行时,Exchange 2013   接受端口143及以上的无担保IMAP4客户端通信   端口993使用安全套接字层(SSL)。

here for POP3

  

默认情况下,两个POP3服务,即Microsoft Exchange POP3服务   和Microsoft Exchange POP3后端服务,尚未启动   运行Microsoft Exchange Server 2013的计算机。您必须启动它们   两种服务,允许您的电子邮件客户端使用连接到Exchange   POP3。运行这些服务时,Exchange 2013接受不安全保护   使用Secure在端口110和端口995上进行POP3客户端通信   套接字层(SSL)。

这是因为MS Outlook客户端使用MAPIMAPI over HTTP与MS Exchange Server通信(类似于Lotus Notes客户端不需要POP3或IMAP,因此使用它) TPC/IP connection over port 1352)[SideNote:MS Outlook for MAC used EWS]

因此,如果启用了IMAP,请与您的交换管理员联系,他可能会为您启用。

如果不是,您可能希望在脚本的更新版本中使用Exchange Webservices (EWS)。一个好的起点可能是"How to: Work with Exchange mailbox items by using EWS in Exchange"

答案 1 :(得分:0)

经过一周的等待后,事实证明负责任的IT部门现在已经正确配置了OWA。我可以使用'{mail.company.com:143}'登录IMAP邮箱。