ExchangeServer2007Web服务PHP类

ExchangeServer2007Web服务PHP类,php,exchange-server,exchange-server-2007,exchangewebservices,Php,Exchange Server,Exchange Server 2007,Exchangewebservices,是否有人知道一个开源PHP类(最好是BSD或MIT许可证),它将通过与MS Exchange Server 2007 Web服务交互。肥皂 我正在寻找一个更高级别的类,它具有通过发送消息的功能。web服务。Exchange server支持WebDAV: 如果您只想发送邮件,可以使用SMTP: 我一直在研究同一个问题,但尚未找到MS Exchange特有的类。但是,如果您觉得自己能够学习和构建XML,那么您可能想看看NTLM SOAP类。这将允许您根据Active Directory进行身份验

是否有人知道一个开源PHP类(最好是BSD或MIT许可证),它将通过与MS Exchange Server 2007 Web服务交互。肥皂


我正在寻找一个更高级别的类,它具有通过发送消息的功能。web服务。

Exchange server支持WebDAV:

如果您只想发送邮件,可以使用SMTP:


我一直在研究同一个问题,但尚未找到MS Exchange特有的类。但是,如果您觉得自己能够学习和构建XML,那么您可能想看看NTLM SOAP类。这将允许您根据Active Directory进行身份验证以进行SOAP调用,而本机PHP SOAP不允许您这样做。使用相同方法连接MS CRM的另一个不错的资源是。

下面的示例是针对Exchange 2003而不是2007。

这里有一个您需要的类:php ews(该库使Microsoft Exchange 2007 Web Services更容易在php中实现)。 您可以在以下网址找到:

这里只有一个例子,但它应该为您提供实现它的方法。 您可以在下面找到一个实现,以便:

  • 连接到服务器
  • 获取日历事件
注意:不要忘记填写空白变量。您还需要包含PHPEWS类文件(我使用了_autoload php函数)

$host='';
$username='';
$password='';
$mail='';
$startDateEvent=''//ie:2010-09-14T09:00:00
$endDateEvent=''//ie:2010-09-20T17:00:00
$ews=新的ExchangeWebServices($host、$username、$password);
$request=新的EWSType_FindItemType();
$request->Traversal=EWSType\u FolderQueryTraversalType::SHALLOW;
$request->CalendarView->StartDate=$startDateEvent;
$request->CalendarView->EndDate=$endDateEvent;
$request->CalendarView->MaxEntriesReturned=100;
$request->CalendarView->MaxEntriesReturnedSpecified=true;
$request->ItemShape->BaseShape=EWSType\u DefaultShapeNamesType::ALL\u属性;
$request->ParentFolderIds->differentiedfolderid->Id=EWSType\u differentiedfolderidnametype::CALENDAR;
$request->parentfolderid->distrignedfolderid->Mailbox->EmailAddress=$mail;
$response=$ews->FindItem($request);
回显“”。打印($response,true)。“”;

我也遇到了同样的问题,所以我开始构建一些东西,如下所示:

它还没有做很多事情(基本上只是让你从服务器上获取一个电子邮件列表,然后发送电子邮件),但它足以作为做一些更复杂事情的基本起点

我已经抽象出了一个很好的复杂性,您将不得不在使用PHPEWS时费力地完成它。如果您希望在服务器上执行一些原始的、强大的命令,我会使用php ews…这是为那些碰巧正在使用Exchange服务器并希望以简单的方式完成一些基本任务的人准备的

哦,它是麻省理工学院授权的


希望有人觉得它有用

我有SMTP与NLTM认证工作。但邮件不会保存在已发送的邮件中。我假设WebDAV会将其保存在已发送的项目中,然后再发送消息。
$host = '';
$username = '';
$password = '';
$mail = '';
$startDateEvent = ''; //ie: 2010-09-14T09:00:00
$endDateEvent = ''; //ie: 2010-09-20T17:00:00

$ews = new ExchangeWebServices($host, $username, $password);
$request = new EWSType_FindItemType();
$request->Traversal = EWSType_FolderQueryTraversalType::SHALLOW;

$request->CalendarView->StartDate = $startDateEvent; 
$request->CalendarView->EndDate = $endDateEvent; 
$request->CalendarView->MaxEntriesReturned = 100;
$request->CalendarView->MaxEntriesReturnedSpecified = true;
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES;

$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR;   
$request->ParentFolderIds->DistinguishedFolderId->Mailbox->EmailAddress = $mail;
$response = $ews->FindItem($request);
echo '<pre>'.print_r($response, true).'</pre>';