如何通过php连接到exchange 2013 EWS(仅获取照片)

如何通过php连接到exchange 2013 EWS(仅获取照片),php,exchange-server,exchangewebservices,Php,Exchange Server,Exchangewebservices,如何连接到exchange 2013 EWS仅获取照片? 我需要什么库(API)以及如何嵌入它?(我是php初学者) 我现在有一个代码: https://exchange.domen.local/ews/exchange.asmx/s/GetUserPhoto?email=mail@mail.ru&size=HR240x240 他问我登录名/密码。那很好。但是我需要一种将登录名/密码写入脚本的方法。谢谢。您提供的“代码”不完整。您只触发URL,但不指定希望从xml流中获取图片 最好的方

如何连接到exchange 2013 EWS仅获取照片? 我需要什么库(API)以及如何嵌入它?(我是php初学者)

我现在有一个代码:

https://exchange.domen.local/ews/exchange.asmx/s/GetUserPhoto?email=mail@mail.ru&size=HR240x240
他问我登录名/密码。那很好。但是我需要一种将登录名/密码写入脚本的方法。谢谢。

您提供的“代码”不完整。您只触发URL,但不指定希望从xml流中获取图片


最好的方法是查看Microsoft HowTo,它提供了可以根据需要进行调整的示例。如果您无法做到这一点,您可能希望从中检查PHP EWS库。

下面是我如何使用curl在PHP中处理此问题的。它很简单,在curl之外没有依赖关系

针对Exchange 2013服务器进行了测试。直接保存到文件中

$server = ''; // owa.whatever.com, etc.
$user = ''; // username without domain info
$password = '';
$email_to_get = ''; // Email to pull photo
$fullurl = "https://$server/ews/Exchange.asmx/s/GetUserPhoto?email=$email_to_get&size=HR648x648"; //sizes defined at https://msdn.microsoft.com/en-us/library/jj194329(v=exchg.80).aspx
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $fullurl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM | CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$returned = curl_exec($ch);

$fp = fopen("pic.jpg", 'w'); // Save picture locally to .jpg
fwrite($fp, $returned);
fclose($fp);

header('Content-type: image/jpeg');
echo $returned; // Display the image on the page if desired

我需要的线索“xml流”。我不知道ews是xml流:)。谢谢稍后我会给出解决方案。你好,格雷格。伟大的脚本,但我有一个问题-您的脚本是在这里打开照片,还是需要从一些变量中提取照片。正如您所说,我更改了变量:$server=“bagira.bam.loc”、$user=“user”、$password=“password”、$email\u to\u get=”user@bsmuk.ru“(加上在开头添加了两个分号)但没有发生任何事情(脚本中没有错误)脚本有一些事情,但我无法理解:)。啊,我删除信息时忽略了一些分号。我将在post.Oleg中修复这个问题,图片数据以$returned的形式返回-这就是为什么我使用fwrite将其写入文件。如果你要打印(返回);如果您转到网页本身,您将看到二进制数据(希望在前几个条目中看到JPGs的JFIF)。我将fopen更改为使用w而不是x,因为w将覆盖/创建文件,x只创建文件。我突然想到,我的代码将图片下载到文件中,但您希望将其嵌入,因此,请查看我的编辑,该编辑将JPEG头放入返回的网页中,然后回显图片数据。现在你得到了图片和二进制数据的对比。它是有效的!库奥。你是互联网上第一个(详细地)实现了从Exchange获取照片的简单方法的人+100 ^)