获取Exchange邮箱的名称以编程方式连接到它

时间:2012-04-16 14:57:03

标签: php exchange-server

我正在编写一个PHP脚本来连接到Exchange服务器并从邮箱中读取邮件。我把它连接到我的收件箱就好了。我现在要做的是让PHP连接到我有权访问的其他邮箱(让我们称之为“测试邮箱”)。

我试过这段代码:

imap_open( '{mail.domain.com:143}Test Mailbox', 'myusername', 'mypassword' );

但它说邮箱不存在。如何获取邮箱列表或获取邮箱路径?

2 个答案:

答案 0 :(得分:1)

您应该考虑使用Exchange Web服务(EWS)执行此操作。这将通过SOAP与IMAP获得您想要的数据,而这些数据无法产生大量的东西。

答案 1 :(得分:0)

您可以获取imap_getmailboxes()的邮箱列表。至于选择邮箱,请尝试不使用前导/

来自php.net:

$mbox = imap_open("{mail.domain.com:143}", "username", "password", OP_HALFOPEN)
  or die("can't connect: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{mail.domain.com:143}", "*");
if (is_array($list)) {
    foreach ($list as $key => $val) {
        echo "($key) ";
        echo imap_utf7_decode($val->name) . ",";
        echo "'" . $val->delimiter . "',";
        echo $val->attributes . "<br />\n";
    }
} else {
    echo "imap_getmailboxes failed: " . imap_last_error() . "\n";
}

imap_close($mbox);