Bonjour,

Lien vers la librairie : https://github.com/jamesiarmes/php-ews


j'ai trouvé cette librairie, qui à l'air très intéressante et qui permet de lire des mails sur un exchange 2010, en utilisant les webservices exchange.

c'est exactement ce que je voulais, sauf que

le problème c'est que je n'arrive pas à l'utiliser
Fatal error: Uncaught exception 'EWS_Exception' with message 'SOAP client returned status of 401
donc j'utilise le code suivant pour essayer de faire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
 
//require_once 'php-ews/EWSAutodiscover.php';
require_once 'php-ews/EWS_Exception.php';
//require_once 'php-ews/EWSType.php';
//require_once 'php-ews/ExchangeWebServices.php';
//require_once 'php-ews/NTLMSoapClient.php';
//require_once 'php-ews/NTLMSoapClient.php';
//require_once 'php-ews/EWSType/FindFolderType.php';
//require_once 'php-ews/EWSType/FolderQueryTraversalType.php';
//require_once 'php-ews/EWSType/FolderResponseShapeType.php';
//require_once 'php-ews/EWSType/DefaultShapeNamesType.php';
//require_once 'php-ews/EWSType/IndexedPageViewType.php';
//require_once 'php-ews/EWSType/NonEmptyArrayOfBaseFolderIdsType.php';
//require_once 'php-ews/EWSType/DistinguishedFolderIdType.php';
//require_once 'php-ews/EWSType/DistinguishedFolderIdNameType.php';
require_once 'php-ews/NTLMSoapClient/Exchange.php';
 
 
/**
 * Function to autoload the requested class name.
 * 
 * @param string $class_name Name of the class to be loaded.
 * @return boolean Whether the class was loaded or not.
 */
function __autoload($class_name)
{
    // Start from the base path and determine the location from the class name,
    $base_path = 'php-ews/';
    $include_file = $base_path . '/' . str_replace('_', '/', $class_name) . '.php';
 
    return (file_exists($include_file) ? require_once $include_file : false);
}
 
 
__autoload("FindFolderType");
 
 
$email= "*************************";
$username ="***********";
$password ="**";
$server = "***********";
 
$ews = new ExchangeWebServices($server, $email, $password);
 
if ($ews == True )
	echo "C'est good</br>";
else
	echo "it's not good</br>";
 
// start building the find folder request
$request = new EWSType_FindFolderType();
$request->Traversal = EWSType_FolderQueryTraversalType::SHALLOW;
$request->FolderShape = new EWSType_FolderResponseShapeType();
$request->FolderShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES;
 
// configure the view
$request->IndexedPageFolderView = new EWSType_IndexedPageViewType();
$request->IndexedPageFolderView->BasePoint = 'Beginning';
$request->IndexedPageFolderView->Offset = 0;
 
// set the starting folder as the inbox
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::INBOX;
 
// make the actual call
$response = $ews->FindFolder($request);
echo '<pre>'.print_r($response, true).'</pre>';
?>

voici le résultat que j'ai :

C'est good
Fatal error: Uncaught exception 'EWS_Exception' with message 'SOAP client returned status of 401' in /var/www/php-ews/php-ews/ExchangeWebServices.php:729 Stack trace: #0 /var/www/php-ews/php-ews/ExchangeWebServices.php(379): ExchangeWebServices->processResponse(NULL) #1 /var/www/php-ews/index.php(68): ExchangeWebServices->FindFolder(Object(EWSType_FindFolderType)) #2 {main} thrown in /var/www/php-ews/php-ews/ExchangeWebServices.php on line 729

qu'en pensez vous svp ?