Sending mail
The following sample demonstrates the use of PHP API for sending mail message out.
The below function accepts a number of parameters, including sender's account email and password, recipient email address, optional CC/BCC lists and read confirmation request flag.
<?php
include_once("/var/www/webmail/libraries/afterlogic/api.php");
function sendEmailMessage($sEmail, $sPassword, $sSubject, $sText, $sTo, $sCc = '', $sBcc = '', $bReadingConfirmation = false)
{
if (class_exists('CApi') && CApi::IsValid())
{
try
{
$oApiIntegratorManager = CApi::Manager('integrator');
$oAccount = $oApiIntegratorManager->LoginToAccount($sEmail, $sPassword);
if ($oAccount)
{
$oApiMailManager = \CApi::Manager('mail');
$oMessage = \MailSo\Mime\Message::NewInstance();
$oMessage->RegenerateMessageId();
$oFrom = \MailSo\Mime\Email::NewInstance($oAccount->Email, $oAccount->FriendlyName);
$oMessage
->SetFrom($oFrom)
->SetSubject($sSubject);
$oToEmails = \MailSo\Mime\EmailCollection::NewInstance($sTo);
if ($oToEmails && $oToEmails->Count())
{
$oMessage->SetTo($oToEmails);
}
$oCcEmails = \MailSo\Mime\EmailCollection::NewInstance($sCc);
if ($oCcEmails && $oCcEmails->Count())
{
$oMessage->SetCc($oCcEmails);
}
$oBccEmails = \MailSo\Mime\EmailCollection::NewInstance($sBcc);
if ($oBccEmails && $oBccEmails->Count())
{
$oMessage->SetBcc($oBccEmails);
}
if ($bReadingConfirmation)
{
$oMessage->SetReadConfirmation($oAccount->Email);
}
$sTextConverted = \MailSo\Base\HtmlUtils::ConvertHtmlToPlain($sText);
$oMessage->AddText($sTextConverted, false);
$mFoundDataURL = array();
$aFoundedContentLocationUrls = array();
$aFoundCids = array();
$htmlTextConverted = \MailSo\Base\HtmlUtils::BuildHtml($sText, $aFoundCids, $mFoundDataURL, $aFoundedContentLocationUrls);
$oMessage->AddText($htmlTextConverted, true);
$sSentFolder = "Sent Items";
$oFolders = $oApiMailManager->getFolders($oAccount);
$aFolders = array();
$oFolders->foreachWithSubFolders(function ($oFolder) use (&$aFolders,&$sSentFolder) {
if ($oFolder->getType() === EFolderType::Sent) {
$sSentFolder = $oFolder->getFullName();
}
}
);
return $oApiMailManager->sendMessage($oAccount, $oMessage, null, $sSentFolder);
}
else
{
echo $oApiIntegratorManager->GetLastErrorMessage();
}
}
catch (Exception $oException)
{
echo $oException->getMessage();
}
}
else
{
echo 'API is not available';
}
}
The function is called as follows:
$sEmail = "user@domain.com";
$sPassword = "MyPassword123";
$sRecipient = "sales@otherdomain.com";
$sSubject = "Test Message";
$sText = "This is a Test Message";
sendEmailMessage($sEmail, $sPassword, $sSubject, $sText, $sRecipient, '', '', '');