Класс PHP веб-служб Exchange Server 2007 - PullRequest
3 голосов
/ 03 февраля 2009

Кто-нибудь знает класс PHP с открытым исходным кодом (предпочтительно лицензия BSD или MIT), который будет взаимодействовать с веб-службами MS Exchange Server 2007 через. SOAP

Я ищу класс более высокого уровня, который имеет функции для отправки сообщений через. веб-сервис.

Ответы [ 5 ]

8 голосов
/ 26 октября 2010

У меня была такая же проблема, поэтому я начал что-то строить здесь:

https://github.com/rileydutton/Exchange-Web-Services-for-PHP

Это пока мало что делает (в основном позволяет получить список сообщений электронной почты с сервера и отправлять электронную почту), но было бы достаточно использовать его в качестве базовой отправной точки для выполнения более сложных задач.

Я довольно подробно описал сложность, с которой вам пришлось бы столкнуться при использовании php-ews. Если вы хотите выполнять какие-то необработанные, мощные команды с сервером, я бы использовал php-ews ... это для людей, которые просто работают с сервером Exchange и хотят получить простой способ выполнения некоторых основных задач. 1008 *

О, и это лицензия MIT.

Надеюсь, что кто-то найдет это полезным!

5 голосов
/ 14 сентября 2010

Вот класс, который вам нужен: php-ews (эта библиотека облегчает реализацию веб-служб Microsoft Exchange 2007 в PHP). Вы можете найти его по адресу: http://code.google.com/p/php-ews/

Есть только один пример, но он должен дать вам возможность его реализовать. Ниже вы можете найти реализацию для:

  • подключиться к серверу
  • получить календарь событий

Примечание: не забудьте заполнить пустые переменные. Вам также необходимо включить файлы классов php-ews (я использовал PHP-функцию __autoload).

<code>$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).'
';
0 голосов
/ 04 февраля 2009

Я исследовал эту же проблему, и мне еще предстоит найти класс, специфичный для MS Exchange. Однако, если вы чувствуете, что можете самостоятельно изучать и создавать XML, вы можете взглянуть на классы SOAP NTLM по адресу http://rabaix.net/en/articles/2008/03/13/using-soap-php-with-ntlm-authentication.. Это позволит вам выполнить аутентификацию в Active Directory для выполнения ваших вызовов SOAP, которые являются нативными. PHP SOAP не позволяет вам делать. Еще один достойный ресурс, который использует тот же метод для подключения к MS CRM, это http://www.reutone.com/heb/articles_internet.php?instance_id=62&actions=show&id=521.

0 голосов
/ 13 февраля 2009

Примеры под http://www.troywolf.com/articles/php/exchange_webdav_examples.php относятся к Exchange 2003, а не к 2007 году.

0 голосов
/ 04 февраля 2009

Сервер Exchange поддерживает WebDAV:

http://www.troywolf.com/articles/php/exchange_webdav_examples.php

Если все, что вам нужно, это отправлять сообщения, вы можете просто использовать SMTP:

http://ca2.php.net/manual/en/book.mail.php

...