• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/mail/mail.php
  • Класс: BitrixMainMailMail
  • Вызов: Mail::__construct
public function __construct(array $mailParams)
{
	if(array_key_exists('LINK_PROTOCOL', $mailParams) && $mailParams['LINK_PROTOCOL'] <> '')
	{
		$this->trackLinkProtocol = $mailParams['LINK_PROTOCOL'];
	}

	if(array_key_exists('TRACK_READ', $mailParams) && !empty($mailParams['TRACK_READ']))
	{
		$this->trackReadLink = Tracking::getLinkRead(
			$mailParams['TRACK_READ']['MODULE_ID'],
			$mailParams['TRACK_READ']['FIELDS'],
			$mailParams['TRACK_READ']['URL_PAGE'] ?? null
		);
	}
	if(array_key_exists('TRACK_CLICK', $mailParams) && !empty($mailParams['TRACK_CLICK']))
	{
		$this->trackClickLink = Tracking::getLinkClick(
			$mailParams['TRACK_CLICK']['MODULE_ID'],
			$mailParams['TRACK_CLICK']['FIELDS'],
			$mailParams['TRACK_CLICK']['URL_PAGE'] ?? null
		);
		if(!empty($mailParams['TRACK_CLICK']['URL_PARAMS']))
		{
			$this->trackClickUrlParams = $mailParams['TRACK_CLICK']['URL_PARAMS'];
		}
	}

	if(array_key_exists('LINK_DOMAIN', $mailParams) && $mailParams['LINK_DOMAIN'] <> '')
	{
		$this->settingServerName = $mailParams['LINK_DOMAIN'];
	}

	$this->charset = $mailParams['CHARSET'];
	$this->contentType = $mailParams['CONTENT_TYPE'];
	$this->messageId = $mailParams['MESSAGE_ID'] ?? null;
	$this->eol = $this->getMailEol();

	$this->attachment = ($mailParams['ATTACHMENT'] ?? array());
	if (isset($mailParams['USE_BLACKLIST']))
	{
		$this->useBlacklist = (bool) $mailParams['USE_BLACKLIST'];
	}

	$this->initSettings();

	if (!$this->trackReadAvailable)
	{
		$this->trackReadLink = null;
	}

	if (!$this->trackClickAvailable)
	{
		$this->trackClickLink = null;
	}

	if (isset($mailParams['GENERATE_TEXT_VERSION']))
	{
		$this->generateTextVersion = (bool) $mailParams['GENERATE_TEXT_VERSION'];
	}
	$this->multipart = (new Multipart())->setContentType(Multipart::MIXED)->setEol($this->eol);

	$this->setTo($mailParams['TO']);
	$this->setSubject($mailParams['SUBJECT']);
	$this->setBody($mailParams['BODY']);
	$this->setHeaders($mailParams['HEADER']);
	$this->setAdditionalParameters();

	if(array_key_exists('CONTEXT', $mailParams) && is_object($mailParams['CONTEXT']))
	{
		$this->context = $mailParams['CONTEXT'];
	}
}