• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/mail/eventmessagecompiler.php
  • Класс: BitrixMainMailEventMessageCompiler
  • Вызов: EventMessageCompiler::setMailHeaders
protected function setMailHeaders()
{
	$arMailFields = array();
	$messageFields = $this->eventMessageFields;
	$arFields = $this->eventFields + $this->siteFields;


	$arMailFields["From"] = $this->replaceTemplate($messageFields["EMAIL_FROM"], $arFields);

	if(isset($messageFields["BCC"]) && $messageFields["BCC"]!='')
	{
		$bcc = $this->replaceTemplate($messageFields["BCC"], $arFields);
		if(strpos($bcc, "@") !== false)
			$arMailFields["BCC"] = $bcc;
	}

	if(isset($messageFields["CC"]) && $messageFields["CC"]!='')
		$arMailFields["CC"] = $this->replaceTemplate($messageFields["CC"], $arFields);

	if(isset($messageFields["REPLY_TO"]) && $messageFields["REPLY_TO"]!='')
		$arMailFields["Reply-To"] = $this->replaceTemplate($messageFields["REPLY_TO"], $arFields);
	else
		$arMailFields["Reply-To"] = preg_replace("/(.*)\<(.*)\>/i", '$2', $arMailFields["From"]);

	if(isset($messageFields["IN_REPLY_TO"]) && $messageFields["IN_REPLY_TO"]!='')
		$arMailFields["In-Reply-To"] = $this->replaceTemplate($messageFields["IN_REPLY_TO"], $arFields);

	if(isset($messageFields["ADDITIONAL_FIELD"]) && is_array($messageFields['ADDITIONAL_FIELD']))
	{
		foreach($messageFields['ADDITIONAL_FIELD'] as $additionalField)
			$arMailFields[$additionalField['NAME']] = static::replaceTemplate($additionalField['VALUE'], $arFields);
	}

	if(isset($messageFields["PRIORITY"]) && $messageFields["PRIORITY"]!='')
		$arMailFields["X-Priority"] = $this->replaceTemplate($messageFields["PRIORITY"], $arFields);

	foreach($arFields as $f=>$v)
	{
		if(mb_substr($f, 0, 1) == "=")
			$arMailFields[mb_substr($f, 1)] = $v;
	}

	foreach($arMailFields as $k=>$v)
		$arMailFields[$k] = trim($v, "rn");

	//add those who want to receive all emails
	if(isset($this->event["DUPLICATE"]) && $this->event["DUPLICATE"]=="Y")
	{
		$all_bcc = ConfigOption::get("main", "all_bcc");
		if(strpos($all_bcc, "@") !== false)
			$arMailFields["BCC"] .= ($all_bcc <> ''?($arMailFields["BCC"] <> ''?",":"").$all_bcc:"");
	}

	if(isset($this->event["EVENT_NAME"]))
		$arMailFields['X-EVENT_NAME'] = $this->event["EVENT_NAME"];


	$this->mailHeaders = $arMailFields;
}