Лучший способ получить доступ к Exchange с помощью PHP?

StackOverflow https://stackoverflow.com/questions/588

Вопрос

Я пишу приложение CMS на PHP, и одним из требований является возможность взаимодействия с сервером Exchange клиента.Я уже несколько раз описывал эту функцию и всегда использовал ВебДАВ сделать это, но сейчас я отклоняюсь от этого.

Я буду запускать сайт на IIS ИЛИ Apache (без предпочтений) на сервере Windows 2008.Несколько вещей, которые мне нужно будет сделать, включают добавление контактов в адресную книгу данного пользователя, отправку электронных писем от имени данного пользователя и создание отчетов о контактах для пользователя.

Все это довольно легко сделать с помощью WebDAV, но если и существует лучший способ, не требующий каких-либо функций, то он, скорее всего, в ближайшее время станет устаревшим.

Есть идеи?

Обновлять:

Джастин, мне нравится идея использования com-объектов, я просто беспокоюсь о поддержке третьего продукта, чтобы все работало...

Джон, я могу написать веб-сервис на C# для взаимодействия с этими функциями и доступа к нему с помощью моего PHP-приложения, но это тоже немного не по пути.

Пока что я не на 100% уверен, что какой-либо из них лучше, чем WebDAV...

Кто-нибудь может показать мне, где я веду себя глупо?

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

Решение

Я не использовал для этого PHP, но у меня есть опыт использования C # для достижения того же самого.

API Outlook — это способ автоматизации Outlook вместо прямого подключения к Exchange.Ранее я использовал этот подход в приложении C#, и он работает, хотя и может содержать ошибки.

Если вы хотите подключиться напрямую к серверу Exchange, вам потребуется изучить расширенный MAPI.

Раньше я использовал эту обертку МАПИEx:Расширенная оболочка MAPI.

Это проект C#, но я считаю, что вы можете использовать некоторый код .NET на сервере PHP5 Windows.В качестве альтернативы у него есть базовая DLL C++, которую вы можете использовать.Я считаю, что это очень хорошо, и есть несколько хороших примеров приложений.

Обновлять:

Извините за задержку, пока нет способа отслеживать сообщения.

Я согласен, что добавлять больше слоев в ваше приложение и полагаться на сторонний код может быть страшно (и это справедливо).

Сегодня я прочитал еще одно интересный пост помечен как MAPI и посвящен другой теме.Однако ключевым моментом здесь является то, что это связано с эта важная статья MS.До сих пор мне не было известно о проблемах, связанных с использованием управляемого кода для взаимодействия с MAPI, хотя эта ошибка не должна влиять на код C++ в компоненте, поскольку он неуправляемый.

В этой записи блога также предлагаются другие способы подключения к серверу MAPI/Exchange.В данном случае из-за этих новых фактов http://us3.php.net/imap может быть ответом, предложенным другим пользователем.

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

Ваш клиент использует Exchange 2007?Если да, то я бы посмотрел Веб-службы обмена.Если нет, то, как бы сложно это ни было, я думаю, что WebDAV — ваш лучший выбор.

Лично мне не нравится использовать маршрут COM-объекта Outlook.Application, поскольку его безопасность подсказывает («Приложение пытается получить доступ к вашим контактам.Разрешить это?» и т. д.) может вызвать проблемы на сервере.Я также думаю, что с помощью Outlook будет сложно выполнять задачи, связанные с выдачей себя за другое лицо, например, отправлять почту от имени заданного пользователя.

Я выпустил лицензированную MIT библиотеку с открытым исходным кодом, которая позволяет выполнять некоторые базовые операции на PHP с помощью веб-служб Exchange.

Веб-службы Exchange для PHP

Я тестировал его только на Linux, но не вижу причин, по которым он не работал бы и на установке PHP в Windows.

Не могу порекомендовать Дмитрия Стреблеченко. Объекты данных погашения библиотека достаточно высоко.Это COM-компонент, который предоставляет разумный API для расширенного MAPI, и его приятно использовать.Цели Exchange API переходят от одной версии к другой:"Используй их:водить машину!Нет, используйте WebDAV!Нет, используйте exoledb!… Нет, используйте веб -сервисы! » с единственной постоянной быть старым добрым мапри.

Я не разработчик PHP, но Google говорит, что PHP 5+ может создавать экземпляры COM-компонентов.Если вы можете установить Outlook на компьютере, вы можете написать веб-службу PHP на основе COM-компонента для обработки необходимых вам запросов.

$outlook = COM("Outlook.Application")

Справочник по API Outlook

Я бы рекомендовал использовать "Веб-службы PHP Exchange" или короткий php-ews.

Достаточное количество документации согласно вики, мне очень помогло.

Этот Зарафа PHP MAPI расширение выглядит так, как будто оно может работать.

Я бы посмотрел на IMAP

IMAP, POP3 и NNTP

https://github.com/Garethp/php-ews

Последний раз оно обновлялось 3 месяца назад, поэтому оно сохраняется.

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