- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/classes/general/mail.php
- Класс: CMailBox
- Вызов: CMailBox::Add
static function Add($arFields)
{
global $DB;
CMailError::ResetErrors();
$arFields = array_filter($arFields, 'is_set');
if($arFields["ACTIVE"] != "Y")
$arFields["ACTIVE"] = "N";
if($arFields["DELETE_MESSAGES"] != "Y")
$arFields["DELETE_MESSAGES"] = "N";
if($arFields["USE_MD5"] != "Y")
$arFields["USE_MD5"] = "N";
if ($arFields['USE_TLS'] != 'Y' && $arFields['USE_TLS'] != 'S')
$arFields["USE_TLS"] = "N";
if (!in_array($arFields["SERVER_TYPE"], array("pop3", "smtp", "imap", "controller", "domain", "crdomain")))
$arFields["SERVER_TYPE"] = "pop3";
if (!CMailBox::CheckFields($arFields))
return false;
$ID = BitrixMailMailboxTable::add($arFields)->getId();
if ($arFields['ACTIVE'] == 'Y' && $arFields['USER_ID'] != 0)
{
CUserCounter::Clear($arFields['USER_ID'], 'mail_unseen', $arFields['LID']);
$mailboxSyncManager = new BitrixMailHelperMailboxMailboxSyncManager($arFields['USER_ID']);
$mailboxSyncManager->setDefaultSyncData($ID);
}
if (in_array($arFields['SERVER_TYPE'], array('imap', 'controller', 'domain', 'crdomain')))
{
CAgent::addAgent(sprintf('BitrixMailHelper::syncMailboxAgent(%u);', $ID), 'mail', 'N', (int) $arFields['PERIOD_CHECK'] * 60);
CAgent::addAgent(sprintf('BitrixMailHelper::cleanupMailboxAgent(%u);', $ID), 'mail', 'N', 3600 * 24);
}
if ($arFields['SERVER_TYPE'] == 'pop3' && (int) $arFields['PERIOD_CHECK'] > 0)
CAgent::addAgent(sprintf('CMailbox::CheckMailAgent(%u);', $ID), 'mail', 'N', (int) $arFields['PERIOD_CHECK']*60);
CMailbox::SMTPReload();
return $ID;
}