Класс PHP веб- служб Exchange Server 2007 Web Services
-
21-08-2019 - |
Вопрос
Кто-нибудь знает о классе 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:
Я исследовал эту же проблему, и мне еще предстоит найти класс, специфичный для 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.