Ejemplo n.º 1
0
<?php

require_once "vendor/autoload.php";
use garethp\ews\API\Type;
$api = MailApi::withUsernameAndPassword('server', 'username', 'password');
//Create the message item
$message = new Type\MessageType();
$message->setSubject('Test Message');
$message->setBody('Test Draft Body');
//Set the message as not a draft using extended property types
$extended = new Type\ExtendedPropertyType();
$fieldUri = new Type\ExtendedFieldURI();
$fieldUri->setPropertyTag("0x0E07");
$fieldUri->setPropertyType(\garethp\ews\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'));
//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' => $folderId->toArray()), 'ItemIds' => array('ItemId' => $itemId->toArray()))));
Ejemplo n.º 2
0
<?php

require_once "vendor/autoload.php";
use garethp\ews\API\Type;
use garethp\ews\MailAPI;
//This one is a bit trickier. Rather than sending the email directly, we have to first create the email, then create the
//attachments, then send the email.
$api = MailAPI::withUsernameAndPassword('server', 'username', 'password');
$message = new Type\MessageType();
$message->setBody('Some Text');
$message->setSubject('Test Subject');
$message->setToRecipients('*****@*****.**');
//Create our message without sending it
$mailId = $return = $api->sendMail($message, array('MessageDisposition' => 'SaveOnly'));
//Create our Attachments
$api->getClient()->CreateAttachment(array('ParentItemId' => $mailId->toArray(), 'Attachments' => array('FileAttachment' => array('Name' => 'picture.jpg', 'Content' => file_get_contents('picture.jpg')))));
//We need to fetch the ItemId again. This is because the ItemId contains a "ChangeKey", which is an Id for that specific
//version of the item. Since we've added attachments, the item has changed, so we need to get the new change key before
//we can send the message
$mailId = $api->getItem($mailId)->getItemId();
//Send the message
$api->getClient()->SendItem(array('SaveItemToFolder' => true, 'ItemIds' => array('ItemId' => $mailId->toArray())));
Ejemplo n.º 3
0
 public function testGetUnreadMailItems()
 {
     $client = $this->getClient();
     $unreadItems = $client->getUnreadMailItems();
     $this->assertCount(0, $unreadItems);
     $this->createTestMail();
     $unreadItems = $client->getUnreadMailItems();
     $this->assertCount(0, $unreadItems);
     $message = new Type\MessageType();
     $message->setSubject('Test Message');
     $message->setBody('Test Draft Body');
     $message->setIsRead(false);
     $this->createTestMail($message);
     $unreadItems = $client->getUnreadMailItems();
     $this->assertCount(1, $unreadItems);
 }
Ejemplo n.º 4
0
<?php

require_once "vendor/autoload.php";
use garethp\ews\API\Type;
use garethp\ews\MailAPI;
$api = MailAPI::withUsernameAndPassword('server', 'username', 'password');
$message = new Type\MessageType();
$message->setBody('Some Text');
$message->setSubject('Test Subject');
$message->setToRecipients('*****@*****.**');
$return = $api->sendMail($message);
Ejemplo n.º 5
0
 public function sendMail(MessageType $message, $options = array())
 {
     $items = array('Message' => $message->toXmlObject());
     $defaultOptions = array('MessageDisposition' => 'SendAndSaveCopy');
     if ($this->getPrimarySmtpMailbox() != null) {
         $sentItems = $this->getFolderByDistinguishedId('sentitems')->getFolderId();
         $defaultOptions['SavedItemFolderId'] = array('FolderId' => $sentItems->toXmlObject());
     }
     $options = array_replace_recursive($defaultOptions, $options);
     return $this->createItems($items, $options);
 }