
Γράφω μια εφαρμογή CMS σε PHP και μία από τις προϋποθέσεις είναι ότι πρέπει να είναι σε θέση να διασυνδέονται με το διακομιστή Exchange του πελάτη. Έχω γράψει μέχρι αυτή τη λειτουργία λίγες φορές στο παρελθόν και έχουν χρησιμοποιήσει πάντα [WebDAV](http://en.wikipedia.org/wiki/WebDAV) για να το κάνουμε, αλλά τώρα είμαι κλίνει μακριά από αυτό.


Θα πρέπει να τρέχει το site στο IIS ή Apache (χωρίς προτίμηση) στο διακομιστή των Windows 2008. Λίγα πράγματα που θα πρέπει να κάνετε περιλαμβάνουν την προσθήκη επαφών στο βιβλίο διευθύνσεων ενός δεδομένου χρήστη, αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου ως δεδομένο χρήστη και εκτέλεση αναφορών σχετικά με τις επαφές για την χρήστης.


Όλα αυτά είναι πολύ εύκολο να κάνει με το WebDAV, αλλά αν υπάρχει ένας καλύτερος τρόπος που δεν απαιτεί καμία λειτουργικότητα που είναι πιθανό να καταργηθεί σύντομα.


Καμιά ιδέα?


### Εκσυγχρονίζω:


Justin, μου αρέσει η ιδέα της χρησιμοποίησης των αντικειμένων com, θα ήθελα απλώς να ανησυχείτε για τη διατήρηση ενός 3ου προϊόν για να κάνουν την εργασία τα πάντα ...


John, δεν μπορώ να γράψω μια υπηρεσία web σε C # για τη διασύνδεση με για αυτές τις λειτουργίες και να έχετε πρόσβαση με την PHP εφαρμογών μου, αλλά είναι επίσης λίγο έξω από το δρόμο.


Μέχρι στιγμής, δεν είμαι 100% πεπεισμένος ότι ένα από αυτά είναι καλύτερο από το WebDAV ... 


Μπορεί κάποιος να μου δείξει πού είμαι είναι ανόητο;

 
Ο καλύτερος τρόπος για να αποκτήσετε πρόσβαση σε Exchange χρησιμοποιώντας PHP;
==============================================================================



Δεν έχω χρησιμοποιήσει PHP για να γίνει αυτό, αλλά έχουν εμπειρία στη χρήση C # για να επιτευχθεί το ίδιο πράγμα.


Το API του Outlook είναι ένας τρόπος για την αυτοματοποίηση του Outlook και όχι τη σύνδεση με Exchange άμεσα. Έχω λάβει στο παρελθόν αυτή την προσέγγιση σε C # εφαρμογή και λειτουργεί, αν και μπορεί να είναι προβληματικό.


Αν θέλετε να συνδεθείτε απευθείας με το διακομιστή του Exchange που θα χρειαστεί για την έρευνα επεκτάθηκε MAPI.


Στο παρελθόν έχω χρησιμοποιήσει αυτό το περιτύλιγμα [MAPIEx: Επέκταση MAPI περιτύλιγμα](http://www.codeproject.com/KB/IP/CMapiEx.aspx) .


Πρόκειται για ένα C # έργο, αλλά πιστεύω ότι μπορείτε να χρησιμοποιήσετε κάποιο κώδικα .NET στον σέρβερ PHP5 των Windows. Εναλλακτικά έχει ένα C ++ πυρήνα DLL που μπορεί να είναι σε θέση να χρησιμοποιήσει. Έχω διαπιστώσει ότι είναι πολύ καλή και υπάρχουν κάποιες καλό παράδειγμα εφαρμογές.


### Εκσυγχρονίζω:


Συγγνώμη για την καθυστέρηση κανένα τρέχον τρόπος για να παρακολουθείτε θέσεις ακόμα.


Συμφωνώ προσθέτοντας περισσότερο στρώμα για να την αίτησή σας, θα στηρίζεται στην 3η κωδικό κόμμα μπορεί να είναι τρομακτικό (και δικαίως έτσι.)


Σήμερα διάβασα μια άλλη [ενδιαφέρουσα θέση](https://stackoverflow.com/questions/4508/mapi-and-managed-code-experiences) με ετικέτα ως MAPI που βρίσκεται σε ένα διαφορετικό θέμα. Το βασικό πράγμα εδώ όμως είναι ότι έχει συνδεθεί με [αυτό το σημαντικό άρθρο MS](http://blogs.msdn.com/mstehle/archive/2007/10/03/fyi-why-are-mapi-and-cdo-1-21-not-supported-in-managed-net-code.aspx) . Έχω αγνοεί τα ζητήματα που μέχρι τώρα σχετικά με τη χρήση του διαχειριζόμενου κώδικα για διεπαφή με MAPI αν και η C ++ κώδικα στο στοιχείο πρέπει να είναι ανεπηρέαστη από αυτό το σφάλμα, όπως είναι χωρίς έλεγχο.


Αυτή η καταχώρηση στο blog προτείνει επίσης άλλοι τρόποι για να συνδεθείτε στο διακομιστή MAPI / Exchange. Σε αυτή την περίπτωση, λόγω αυτών των νέων στοιχείων <http://us3.php.net/imap> μπορεί να είναι η απάντηση, όπως προτείνεται από τον άλλο χρήστη.

 

Δεν είμαι PHP dev αλλά το Google λέει ότι η PHP 5+ μπορεί υπόσταση στοιχεία COM. Εάν μπορείτε να εγκαταστήσετε το Outlook σε ένα κουτί θα μπορούσατε να γράψετε μια υπηρεσία PHP web γύρω από το στοιχείο COM για να χειριστεί τα αιτήματα που χρειάζεστε.



```
$outlook = COM("Outlook.Application")

```

[Outlook εμπορική επωνυμία API](http://msdn.microsoft.com/en-us/library/aa193231.aspx)

 

Θα εξετάσουμε IMAP


[IMAP, POP3 και NNTP](http://us3.php.net/imap)

 

Είναι πελάτη σας με τη χρήση του Exchange 2007; Αν ναι, θα ήθελα να ρίξετε μια ματιά σε [Υπηρεσίες Web του Exchange](http://msdn.microsoft.com/en-us/library/bb204119(EXCHG.80).aspx) . Αν όχι, όπως τριχωτά όπως μπορεί να είναι, νομίζω WebDAV είναι το καλύτερο στοίχημά σας. 


Προσωπικά δεν μου αρέσει χρησιμοποιώντας το αντικείμενο διαδρομή Outlook.Application COM, όπως μηνύματα ασφαλείας του ( «Μια εφαρμογή προσπαθεί να αποκτήσει πρόσβαση στις επαφές σας. Αφήστε αυτό;», κλπ) μπορεί να προκαλέσει προβλήματα σε ένα διακομιστή. Πιστεύω επίσης ότι θα ήταν δύσκολο να επιτευχθεί πλαστοπροσωπία, όπως εργασίες σας χρησιμοποιώντας το Outlook, όπως η αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου ως χρήστη.

 

Δεν μπορώ να συστήσω Ντμίτρι Streblechenko της [εξαγοράς Data Objects](http://www.dimastr.com/redemption/rdo_introduction.htm) βιβλιοθήκη ιδιαίτερα αρκετό. Είναι ένα στοιχείο COM που παρέχει μια υγιής API για Extended MAPI και είναι μια χαρά για χρήση. Τα τέρματα Exchange API μετακινούνται από το ένα απελευθέρωση στο επόμενο: «Χρησιμοποιήστε το M: το αυτοκίνητο! Όχι, χρησιμοποιήστε WebDAV! Όχι, χρησιμοποιήστε ExOLEDB! ... Όχι, χρησιμοποιήστε Υπηρεσίες Web!»Με την μόνη σταθερά είναι παλιό καλό MAPI.

 

Έχω κυκλοφορήσει μια άδεια βιβλιοθήκη του ΜΙΤ ανοικτού κώδικα που σας επιτρέπει να κάνετε κάποιες βασικές λειτουργίες σε PHP τη χρήση των υπηρεσιών Web του Exchange.


[Ανταλλαγή Web Services για την PHP](https://github.com/Heartspring/Exchange-Web-Services-for-PHP)


Έχω δοκιμαστεί μόνο σε Linux, αλλά δεν βλέπω κανένα λόγο για τον οποίο δεν θα μπορούσε να λειτουργήσει σε μια εγκατάσταση των Windows της PHP, όπως καλά.

 

Αυτό [Zarafa PHP MAPI](http://developer.zarafa.com/php-ext/) επέκτασης φαίνεται ότι θα μπορούσε να λειτουργήσει.

 

Θα ήθελα να συστήσω χρησιμοποιώντας **« [PHP Υπηρεσίες Web του Exchange](https://github.com/jamesiarmes/php-ews) »** ή μικρή **php-EWS.**


Δίκαιο ποσό της τεκμηρίωσης στο πλαίσιο του [wiki](https://github.com/jamesiarmes/php-ews/wiki) , με βοήθησε πολύ.

 

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


Ήταν ενημερώθηκε για τελευταία φορά πριν 3 μήνες, ώστε να διατηρείται

 