none
Как зайти на Exchange через EWS? RRS feed

Ответы

  • Вот скрипт на ПХП который вытаскивает фото. Помогли спецы из-за бугра. спасибо им very much. 

    <?php

    session_start();

    $server = 'mail.contoso.local'; //  почт сервер

    $user = 'PHPUser'; // пользователь для AD без домена!!

    $password = 'password';

    $email_to_get = 'user@contoso.ru'; // email пользователя кот хотим вытащить

    $fullurl = "https://$server/ews/Exchange.asmx/s/GetUserPhoto?email=$email_to_get&size=HR240x240"; //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

    ?>

    В сам этот файл больше ничего пихать нельзя, что может повлиять на отображение картинки, потому что он расшифровывает весь header. Потому возникла идея сохранить код в файле  допустим exch_photo.php и вложить в другой файл php как картинку. И далее можно уже добавлять стили, таблицы, картинки и т.д. Но если нужно просто вытащить фото из exchange и отобразить в браузере, то достаточно кода выше и не вкладывать файл php.

    <img src="exch_photo.php">

     



    • Изменено user00431 21 ноября 2017 г. 9:21
    • Помечено в качестве ответа user00431 21 ноября 2017 г. 9:22
    21 ноября 2017 г. 9:16

Все ответы

  • Никак, Вам нужна аутентификация для работы с EWS. Вопрос непонятен, что хотите получить. Поэтому, переформулируйте

    и Откройте для себя EWS Editor+ PowerShell.

    2 ноября 2017 г. 7:58
  • Может автор имеет в виду OWA/ECP?))
    2 ноября 2017 г. 8:14
  • наверно это вопрос всё же к php-никам. я через php подключаюсь к службе EWS что бы стянуть оттуда фотографии. использую в коде одну только эту строку. хотел узнать есть ли возможность, не средствами php, аутентифицироваться что бы не спрашивал логин пароль.
    2 ноября 2017 г. 8:41
  • Я решал таким образом:

    Раз в сутки у меня срабатывал скрипт и выгружал все фотки из AD, далее подтягивал фотки на сайт средствами php. 

    Сам скрипт:

    import-module activedirectory
     
    $users = Get-ADUser -Filter {(mail -ne "null") -and (pager -ne "null") -and (l -ne "Null") -and (Enabled -eq "true")} -Properties l,Department,Name,pager,title,mobile,telephoneNumber,mail,sAMAccountName | Select-Object l,Department,Name,pager,title,mobile,telephoneNumber,mail,sAMAccountName
    
    ForEach($user in $users)  
      {  
    	$filename_thumbphoto = "D:\DFSRoots\old\ADMIN\IT\phonebook\Images\" + $user.sAMAccountName + "_thumb.jpg"
    	$filename_photo = "D:\DFSRoots\old\ADMIN\IT\phonebook\Images\" + $user.sAMAccountName + "_photo.jpg"
    	$user_photo = Get-ADUser $user.sAMAccountName -Properties thumbnailphoto, jpegPhoto
    	if(!($user_photo.thumbnailphoto -eq $null)){
    		$user_photo.thumbnailphoto | Set-Content $filename_thumbphoto -Encoding byte 
    		$user_photo.jpegPhoto | Set-Content $filename_photo -Encoding byte
    	}
     }  
    
    $users | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," D:\DFSRoots\old\ADMIN\IT\phonebook\CSV\list.csv

    • Изменено Sergey Ya 2 ноября 2017 г. 8:47
    2 ноября 2017 г. 8:45
  • здорово реализовали. но у вас маленькие фото, так как из AD, а мне нужны их копии в высоком разрешении, которые хранятся в почт ящиках.
    2 ноября 2017 г. 9:01
  • Мы об одном и том же говорим? 

    Вам нужно вытащить фото пользователей, верно?

    Если так, то они хранятся в:

    thumbnailphoto - малые фото
    jpegPhoto - большие фото

    2 ноября 2017 г. 9:10
  • EWS и имперсонация помогут пхпшникам.
    2 ноября 2017 г. 9:10
  • Мы об одном и том же говорим? 

    Вам нужно вытащить фото пользователей, верно?

    Если так, то они хранятся в:

    thumbnailphoto - малые фото
    jpegPhoto - большие фото

    Нет. Они хранятся в ящике.
    2 ноября 2017 г. 9:12
  • Пардон

    2 ноября 2017 г. 9:29
  • найду ответ - отпишусь. просто в документации пхп ничего толком нет на эту тему, точнее невнятно. есть примеры на С#
    2 ноября 2017 г. 11:15
  • Неудивительно, Америку тут Вы не открыли. Весь мсдн  на сях в примерах. И их должно хватить Вашим разработчикам для понимания что они могут сделать на пхп. Самое время осваивать повершел как по мне, если не осилят.
    2 ноября 2017 г. 12:13
  • Вот скрипт на ПХП который вытаскивает фото. Помогли спецы из-за бугра. спасибо им very much. 

    <?php

    session_start();

    $server = 'mail.contoso.local'; //  почт сервер

    $user = 'PHPUser'; // пользователь для AD без домена!!

    $password = 'password';

    $email_to_get = 'user@contoso.ru'; // email пользователя кот хотим вытащить

    $fullurl = "https://$server/ews/Exchange.asmx/s/GetUserPhoto?email=$email_to_get&size=HR240x240"; //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

    ?>

    В сам этот файл больше ничего пихать нельзя, что может повлиять на отображение картинки, потому что он расшифровывает весь header. Потому возникла идея сохранить код в файле  допустим exch_photo.php и вложить в другой файл php как картинку. И далее можно уже добавлять стили, таблицы, картинки и т.д. Но если нужно просто вытащить фото из exchange и отобразить в браузере, то достаточно кода выше и не вкладывать файл php.

    <img src="exch_photo.php">

     



    • Изменено user00431 21 ноября 2017 г. 9:21
    • Помечено в качестве ответа user00431 21 ноября 2017 г. 9:22
    21 ноября 2017 г. 9:16