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