Monday 8 December 2014

[FastToUse] - Send mail with Exchange Web Service(EWS) using PHP

What?
How to send emails from inside or outside your organization with Exchange 2007/2010/2013/Online using PHP.

Fast instructions:
  • Go to GitHub PHP-EWS and download the libraries
  • Edit the following example and you will be sending e-mails with Exchange in a minutes.
PHP Code:
 <?php  
 //for debugging purpose only, remove in production  
 error_reporting(E_ALL);   
 ini_set( 'display_errors','1');  
 //Load libraries  
 require_once('ExchangeWebServices.php');  
 require_once('NTLMSoapClient.php');  
 require_once('NTLMSoapClient/Exchange.php');  
 require_once('EWS_Exception.php');  
 require_once('EWSType.php');  
 require_once('EWSType/MessageType.php');  
 require_once('EWSType/EmailAddressType.php');  
 require_once('EWSType/BodyType.php');  
 require_once('EWSType/SingleRecipientType.php');  
 require_once('EWSType/CreateItemType.php');  
 require_once('EWSType/NonEmptyArrayOfAllItemsType.php');  
 require_once('EWSType/ItemType.php');  
 class EwsSendEmail  
 {  
      protected function sendEmail()  
      {  
           $server = 'mail.server.com';  
           $username = 'domain\username';  
           $password = '';  
           $ews = new ExchangeWebServices($server, $username, $password);  
           $msg = new EWSType_MessageType();  
           $toAddresses = array();  
           $toAddresses[0] = new EWSType_EmailAddressType();  
           $toAddresses[0]->EmailAddress = 'user@domain.com';  
           $toAddresses[0]->Name = 'Name Surname';  
           $toAddresses[1] = new EWSType_EmailAddressType();  
           $toAddresses[1]->EmailAddress = 'user2@domain.com';  
           $toAddresses[1]->Name = 'Name2 Surname';  
           $msg->ToRecipients = $toAddresses;  
           $fromAddress = new EWSType_EmailAddressType();  
           $fromAddress->EmailAddress = 'mailFrom@domain.com';  
           $fromAddress->Name = 'NameFrom Surname';  
           $msg->From = new EWSType_SingleRecipientType();  
           $msg->From->Mailbox = $fromAddress;  
           $msg->Subject = 'Test missage from PHP code';  
           $msg->Body = new EWSType_BodyType();  
           $msg->Body->BodyType = 'HTML';  
           $msg->Body->_ = '<p style="font-size: 18px; font-weight: bold;">MESSAGE BODY!</p>';  
           $msgRequest = new EWSType_CreateItemType();  
           $msgRequest->Items = new EWSType_NonEmptyArrayOfAllItemsType();  
           $msgRequest->Items->Message = $msg;  
           $msgRequest->MessageDisposition = 'SendAndSaveCopy';  
           $msgRequest->MessageDispositionSpecified = true;  
           $response = $ews->CreateItem($msgRequest);  
           var_dump($response);  
      }  
      function __construct()  
      {  
           $this->sendEmail();  
      }  
 }  
 $page = new EwsSendEmail();  
 ?>  
More information:
Hope it helps!

No comments:

Post a Comment