• Модуль: 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];
}