3

Est-ce que quelqu'un connaît une classe PHP open source (de préférence BSD ou MIT) qui va s'interfacer avec les services Web MS Exchange Server 2007 via. SAVON?Services Web d'Exchange Server 2007 Classe PHP

Je suis à la recherche d'une classe de niveau supérieur qui a des fonctionnalités pour envoyer des messages via. le service Web.

Répondre

8

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

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

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

J'ai fait abstraction d'une bonne partie de la complexité que vous auriez à faire en utilisant PHP-ews. Si vous cherchez à faire des commandes brutes et puissantes avec le serveur, j'utiliserais php-ews ... ceci est pour les gens qui travaillent avec un serveur Exchange et veulent un moyen facile de faire quelques tâches de base.

Oh, et c'est une licence MIT.

Espérons que quelqu'un le trouve utile!

0

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

+0

J'ai SMTP travailler avec l'authentification NLTM. mais le message n'est pas enregistré dans les éléments envoyés. Je suppose que WebDAV enregistrerait ceci dans les éléments envoyés et enverrait alors le message. – Luke

0

J'ai fait des recherches cette même question et je dois encore trouver une classe spécifique à MS Exchange. Cependant, si vous vous sentez à l'aise pour apprendre et construire le XML vous-même, vous pouvez jeter un œil aux classes SOAP NTLM au http://rabaix.net/en/articles/2008/03/13/using-soap-php-with-ntlm-authentication. Cela vous permettra de vous authentifier dans Active Directory pour effectuer vos appels SOAP, ce que PHP SOAP natif ne vous permet pas de 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.

5

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 existe un seul exemple mais cela devrait vous donner le moyen de l'implémenter. Ci-dessous vous trouverez une mise en œuvre afin de:

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

Note: ne pas oublier de remplir les variables vides. Vous devez également inclure les fichiers de 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>';