- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/mail/sender.php
- Класс: BitrixMainMailSender
- Вызов: Sender::getEmailLimit
static function getEmailLimit($email): ?int
{
$address = new BitrixMainMailAddress($email);
if (!$address->validate())
{
return null;
}
$email = $address->getEmail();
static $mailLimit = array();
if (!isset($mailLimit[$email]))
{
$cache = new CPHPCache();
if ($cache->initCache(3600, $email, '/main/mail/limit'))
{
$mailLimit[$email] = $cache->getVars();
}
else
{
$res = InternalSenderTable::getList(array(
'filter' => array(
'IS_CONFIRMED' => true,
'=EMAIL' => $email,
),
'order' => array(
'ID' => 'DESC',
),
));
$limit = null;
while ($item = $res->fetch())
{
if ($item['OPTIONS']['smtp']['limit'] !== null)
{
$limit = (int)$item['OPTIONS']['smtp']['limit'];
break;
}
}
$mailLimit[$email] = $limit;
$cache->startDataCache();
$cache->endDataCache($mailLimit[$email]);
}
}
return $mailLimit[$email] < 0 ? 0 : $mailLimit[$email];
}