*,
Я хочу ежедневно загружать некоторые .EML-файлы на свой Exchange Server 2013. Поэтому я нашел в Google класс PHP от James Iarmes, называющий PHP-EWS.
https://github.com/jamesiarmes/php-ews
Я попробовал несколько примеров, и я думаю, что этот класс хорош для меня. Есть только одна проблема: в этом вики нет примера кода, и, к сожалению, я его не вывожу 🙁
Есть ли кто-то, кто работает с этим классом и может опубликовать пример для загрузки на серверы Exchange с использованием PHP-EWS?
С уважением
Исходя из ответа, данного Майклом выше, я не могу сказать вам, как бы вы это сделали в jamesaires/php-ews
, но я могу рассказать вам, как это сделать в моей библиотеке EWS, garethp/php-ews
. Я настоятельно рекомендую вам заглянуть в мою библиотеку, так как она поддерживается и PSR-4 совместима. Вот как бы вы сделали это, используя метод Майкла
<?php
require_once "vendor/autoload.php";
use jamesiarmes\PEWS\API\Type;
use jamesiarmes\PEWS\Mail\MailAPI;
$api = MailApi::withUsernameAndPassword('server', 'username', 'password');
$message = new Type\MessageType();
$message->setMimeContent(file_get_contents('./file.eml'));
//Set the message as not a draft using extended property types
$extended = new Type\ExtendedPropertyType();
$fieldUri = new Type\ExtendedFieldURI();
$fieldUri->setPropertyTag("0x0E07");
$fieldUri->setPropertyType(\jamesiarmes\PEWS\API\Enumeration\MapiPropertyTypeType::INTEGER);
$extended->setExtendedFieldURI($fieldUri);
$extended->setValue(1);
$message->addExtendedProperty($extended);
//Pass it to the Send Mail function, but to SaveOnly without actually sending the email
$itemId = $api->sendMail($message, array('MessageDisposition' => 'SaveOnly'));
$inbox = $api->getFolderByDistinguishedId('inbox');
//Move the mail message from the sent folder to whatever folder we want to send it to
$api->getClient()->MoveItem(Type::buildFromArray(array(
'ToFolderId' => array('FolderId' => $inbox->getFolderId()->toArray()),
'ItemIds' => array(
'ItemId' => $itemId->toArray()
)
)));
Я никогда не работал с PHP-EWS, но знаю, что вы можете поместить .eml в Exchange. Вы не будете использовать операцию UploadItem. Вы будете использовать операцию CreateItem. Вот рабочий процесс:
Я довольно уверен, что это будет работать, так как я помню, как писал это в официальном документация.