/home/ivoiecob/email.hirewise-va.com/modules/Mail/Crons/scheduled_autoresponder.php
<?php
/**
* This code is licensed under AGPLv3 license or Afterlogic Software License
* if commercial version of the product was purchased.
* For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
*/
namespace Aurora\Modules\Mail;
if (PHP_SAPI !== 'cli') {
exit("Use the console for running this script");
}
require_once \dirname(__file__) . "/../../../system/autoload.php";
\Aurora\System\Api::Init();
function log($message)
{
\Aurora\System\Api::Log($message, \Aurora\System\Enums\LogLevel::Full, 'scheduled-autoresponder-');
}
if (Module::getInstance()->oModuleSettings->AllowScheduledAutoresponder) {
$accounts = Models\MailAccount::where('Properties->' . 'Mail::AutoresponderScheduled', true)
->where('Properties->' . 'Mail::AutoresponderStart', '<', time())->get();
$sieveManager = Module::getInstance()->getSieveManager();
foreach ($accounts as $account) {
/** @var \Aurora\Modules\Mail\Models\MailAccount $account */
log('Process account: ' . $account->Id);
$end = $account->getExtendedProp('Mail::AutoresponderEnd');
$disableAutoResponder = ($end !== null && $end < time());
if ($disableAutoResponder) {
log('Disable scheduled autoresponder');
$account->setExtendedProp('Mail::AutoresponderScheduled', false);
$account->save();
}
$autoResponder = $sieveManager->getAutoresponder($account);
if ($autoResponder) {
if ($disableAutoResponder) {
log('Disable autoresponder');
$sieveManager->setAutoresponder($account, $autoResponder['Subject'], $autoResponder['Message'], false);
} elseif (!$autoResponder['Enable']) {
log('Enable autoresponder');
$sieveManager->setAutoresponder($account, $autoResponder['Subject'], $autoResponder['Message'], true);
}
} else {
log('Autoresponder not found');
}
}
} else {
log('Scheduled autoresponder disabled');
}