Najlepszym sposobem, aby uzyskać dostęp do Exchange za pomocą PHP?

głosy
49

Piszę aplikację CMS w PHP i jednym z wymogów jest to, że musi on mieć możliwość łączenia się z serwerem Exchange klienta. Pisałem tę funkcjonalność kilka razy i zawsze stosować WebDAV to zrobić, ale teraz jestem pochylony z dala od tego.

I będzie uruchomienie witryny w IIS lub Apache (brak preferencji) na serwerze Windows 2008. kilka rzeczy, które muszę zrobić, to dodawanie kontaktów do książki adresowej danego użytkownika, wysyłanie e-maili jako danego użytkownika i generowania raportów na kontaktach dotyczący użytkownik.

Wszystko to jest bardzo łatwe do zrobienia z WebDAV, ale jeśli istnieje lepszy sposób, który nie wymaga żadnej funkcji, która może być przestarzałe w najbliższym czasie.

Jakieś pomysły?

Aktualizacja:

Justin, kocham pomysł wykorzystania obiektów COM, po prostu się martwić o utrzymanie 3rd produkt, aby wszystko działa ...

John, mogę pisać usługi sieci web w języku C #, aby interfejs z tych funkcji i uzyskać do niego dostęp z mojego PHP aplikacji, ale również trochę na uboczu.

Do tej pory nie jestem w 100% przekonany, że jedną z nich jest lepszy niż WebDAV ...

Czy ktoś może mi pokazać, gdzie mam być głupie?

Utwórz 03/08/2008 o 01:03
źródło użytkownik
W innych językach...                            


9 odpowiedzi

głosy
21

Nie używałem PHP to zrobić, ale mam doświadczenie w C #, aby osiągnąć to samo.

API Outlook jest sposobem na automatyzację Outlook zamiast podłączania do bezpośredniej wymiany. Już wcześniej podjęte w tym kierunku w aplikacji C # i to działa, chociaż może być wadliwy.

Jeśli chcesz połączyć się bezpośrednio z serwerem Exchange trzeba będzie badać przedłużony MAPI.

W przeszłości użyłem tego otoki MAPIEx: Extended MAPI Wrapper .

Jest to projekt C #, ale uważam, że można korzystać z niektórych kodu .NET na serwerze PHP5 Windows. Alternatywnie ma rdzeń DLL C ++, że możesz być w stanie wykorzystać. I okazało się, że bardzo dobre i istnieje kilka dobrych przykładowe aplikacje.

Aktualizacja:

Przepraszamy za opóźnienie nie aktualny sposób, aby zachować jeszcze utwór stanowisk.

Zgadzam dodając warstwę do aplikacji i polegając na 3rd kodu stron może być przerażające (i słusznie).

Dzisiaj czytam kolejny ciekawy post oznaczony jako MAPI, który jest na inny temat. Kluczową rzeczą tutaj jest jednak, że to jest powiązane z tym ważnym artykule MS . Byłem nieświadomy kwestii do tej pory na temat korzystania z kodu zarządzanego do interfejsu MAPI chociaż C ++ kod w składniku powinny być niezależne od tego błędu, ponieważ jest niekontrolowana.

Ten wpis blogu sugeruje również inne sposoby, aby połączyć się z serwerem MAPI / Exchange. W tym przypadku z powodu tych nowych faktów http://us3.php.net/imap może być odpowiedź sugerowane przez innego użytkownika.

Odpowiedział 03/08/2008 o 08:50
źródło użytkownik

głosy
13

Czy klient przy użyciu Exchange 2007? Jeśli tak, to musiałbym spojrzeć na Exchange Web Services . Jeśli nie, jak owłosiony jak to może być, myślę WebDAV jest najlepszym.

Osobiście nie lubię za pomocą obiektu trasą Outlook.Application COM, a jego komunikaty bezpieczeństwa ( „Aplikacja próbuje uzyskać dostęp do swoich kontaktów. Pozwala to?”, Itd.) Może powodować problemy na serwerze. Myślę też, że byłoby trudne do zrealizowania swoich zadań jak personifikacji pomocą programu Outlook, takie jak wysyłanie poczty jako danego użytkownika.

Odpowiedział 05/08/2008 o 03:35
źródło użytkownik

głosy
8

Nie mogę polecić Dmitrija Streblechenko na Shawshank Data Objects Library bardzo mało. Jest to komponent COM, który dostarcza API sane Extended MAPI i jest radość z użytkowania. Bramki Exchange API przejść z jednej wersji do drugiej: „Użyj M: dysk! Nie używać WebDAV! Nie używać EXOLEDB! ... No, użyj Web Services”z jedyną stałą jest stary dobry MAPI.

Odpowiedział 01/09/2008 o 21:33
źródło użytkownik

głosy
7

Mam wydała open source na licencji MIT bibliotekę, która pozwala wykonać kilka podstawowych operacji w PHP przy użyciu Exchange Web Services.

Usługi wymiana sieci dla PHP

Mam tylko testowałem to na Linux, ale nie widzę żadnego powodu, dlaczego nie będzie działać na instalacji systemu Windows PHP, jak również.

Odpowiedział 04/05/2011 o 14:47
źródło użytkownik

głosy
6

Nie jestem dev PHP ale Google mówi, że PHP 5+ może instancji komponentów COM. Jeśli można zainstalować programu Outlook na pudełku można napisać obsługę PHP internetową wokół składnika COM do obsługi żądań, których potrzebujesz.

$outlook = COM("Outlook.Application")

Outlook API Referance

Odpowiedział 03/08/2008 o 04:07
źródło użytkownik

głosy
5

Ten Zarafa PHP MAPI przedłużenie wygląda jakby mógł pracować.

Odpowiedział 09/05/2012 o 19:47
źródło użytkownik

głosy
4

Chciałbym spojrzeć na IMAP

IMAP, POP3 i NNTP

Odpowiedział 04/08/2008 o 18:00
źródło użytkownik

głosy
2

Polecam przy użyciu " PHP Exchange Web Services " lub krótko php-EWS.

Sporo dokumentacji pod wiki , bardzo mi pomogło.

Odpowiedział 01/02/2013 o 14:20
źródło użytkownik

głosy
0

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

Została ostatnia aktualizacja: 3 miesiące temu, więc jest utrzymywany

Odpowiedział 09/10/2018 o 16:31
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more