Question

Quelqu'un sait-il d'une classe PHP open source (de préférence BSD ou licence MIT) qui interface avec le MS Exchange Server 2007 Web Services via. SOAP?

Je cherche une classe de niveau supérieur qui a une fonctionnalité pour envoyer des messages via. le service Web.

Était-ce utile?

La solution

J'ai eu ce même problème, donc je commencé à construire quelque chose, ici:

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

Il ne fait pas encore beaucoup (fondamentalement juste vous permet d'obtenir une liste de messages électroniques à partir du serveur, et envoyez un courriel), mais il serait assez bon pour utiliser comme point de départ de base pour faire des choses plus compliquées.

J'abstraire une bonne partie de la complexité que vous auriez à bossez grâce à l'aide de php-EWS. Si vous cherchez à faire des commandes brutes, puissantes avec le serveur, j'utiliser php-EWS ... c'est pour les gens qui se trouvent juste pour travailler avec un serveur Exchange et que vous voulez un moyen facile de faire quelques tâches de base.

Oh, et il est MIT sous licence.

L'espoir que quelqu'un le trouve utile!

Autres conseils

Voici une classe que vous avez besoin: php-EWS (Cette bibliothèque rend les services Web Microsoft Exchange 2007 plus facile à mettre en œuvre en PHP). Vous pouvez le trouver à: http://code.google.com/p/php-ews/

Il n'y a qu'un seul exemple, mais qui devrait vous donner la façon de le mettre en œuvre. Ci-dessous vous trouverez une implémentation pour:

  • Se connecter au serveur
  • obtenir les événements de calendrier

Note: ne pas oublier de remplir les variables vides. Vous devez également inclure des fichiers classes php-EWS (j'ai utilisé la fonction PHP __autoload).

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

serveur Exchange prend en charge WebDAV:

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

Si tout ce que vous voulez faire est d'envoyer des messages, vous pouvez simplement utiliser SMTP:

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

J'ai fait des recherches sur cette même question et je n'ai pas encore trouver une classe spécifique à MS Exchange. Cependant, si vous vous sentez à l'apprentissage et la construction du XML vous-même, vous pouvez jeter un oeil à la classe SOAP NTLM http://rabaix.net/en/articles/2008/03/13/using-soap-php-with-ntlm-authentication . Cela vous permettra d'authentifier sur Active Directory pour faire vos appels SOAP, SOAP qui PHP natif ne vous permet pas de le faire. Une autre ressource décent qui utilise la même méthode pour se connecter à MS CRM est http://www.reutone.com/heb/articles_internet.php?instance_id=62&actions=show&id=521 .

Les exemples sous http://www.troywolf.com/articles/php/ exchange_webdav_examples.php sont pour Exchange 2003 ne 2007.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top