*,
我想每天将一些.EML文件上传到我的Exchange Server 2013.所以我从Google发现了一个来自James Iarmes的PHP类来调用PHP-EWS。 https://github.com/jamesiarmes/php-ews
我尝试了一些例子,我认为,这堂课对我有好处。只有一个问题:这个wiki中没有示例代码,不幸的是我没有解决它: - (
是否有人使用此类并可以发布示例以使用PHP-EWS上传到Exchange服务器?
此致
答案 0 :(得分:2)
根据迈克尔上面给出的答案,我无法告诉你如何在jamesaires/php-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()
)
)));
答案 1 :(得分:0)
我从未使用过PHP-EWS,但我知道你可以将.eml放到Exchange中。你不会使用UploadItem操作。您将使用CreateItem操作。这是工作流程:
我相信这会有用,因为我记得在官方documentation中写这个。