Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

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

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

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

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

$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>';

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

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

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

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

Я исследовал эту же проблему, и мне еще предстоит найти класс, специфичный для MS Exchange.Однако, если вы готовы самостоятельно изучать и создавать XML-файлы, возможно, вам захочется ознакомиться с классами NTLM SOAP по адресу 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.

Приведенные ниже примеры http://www.troywolf.com/articles/php/exchange_webdav_examples.php предназначены для Exchange 2003, а не 2007.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top