• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/mail/mail.php
  • Класс: BitrixMainMailMail
  • Вызов: Mail::getHeaders
public function getHeaders()
{
	$headers = $this->headers;

	foreach($headers as $k=>$v)
	{
		$headers[$k] = trim($v, "rn");
		if($headers[$k] == '')
		{
			unset($headers[$k]);
		}
	}

	$this->filterHeaderEmails($headers);

	if(
		(!isset($headers["Reply-To"]) || $headers["Reply-To"] == '')
		&& isset($headers["From"])
		&& $headers["From"] <> ''
	)
	{
		$headers["Reply-To"] = preg_replace("/(.*)\<(.*)\>/i", '$2', $headers["From"]);
	}

	if (!isset($headers["X-Priority"]) || $headers["X-Priority"] == '')
	{
		$headers["X-Priority"] = '3 (Normal)';
	}

	if(!isset($headers["Date"]) || $headers["Date"] == '')
	{
		$headers["Date"] = date("r");
	}

	if(empty($headers["MIME-Version"]))
	{
		$headers["MIME-Version"] = '1.0';
	}

	if($this->settingMailConvertMailHeader)
	{
		foreach($headers as $k => $v)
		{
			if ($k == 'From' || $k == 'CC' || $k == 'Reply-To')
			{
				$headers[$k] = $this->encodeHeaderFrom($v, $this->charset);
			}
			else
			{
				$headers[$k] = $this->encodeMimeString($v, $this->charset);
			}
		}
	}

	if($this->settingServerMsSmtp)
	{
		if(isset($headers["From"]) && $headers["From"] != '')
		{
			$headers["From"] = preg_replace("/(.*)\<(.*)\>/i", '$2', $headers["From"]);
		}

		if(isset($headers["To"]) && $headers["To"] != '')
		{
			$headers["To"] = preg_replace("/(.*)\<(.*)\>/i", '$2', $headers["To"]);
		}

		if(isset($headers["Reply-To"]) && $headers["Reply-To"] != '')
		{
			$headers["Reply-To"] = preg_replace("/(.*)\<(.*)\>/i", '$2', $headers["Reply-To"]);
		}
	}

	if($this->settingMailFillToEmail)
	{
		$headers["To"] = $this->getTo();
	}

	if($this->messageId != '')
	{
		$headers['X-MID'] = $this->messageId;
	}


	$headerString = "";
	foreach($headers as $k=>$v)
	{
		$headerString .= $k . ': ' . $v . $this->eol;
	}
	// Content-Transfer-Encoding & Content-Type add from Multipart
	$headerString .= rtrim($this->multipart->toStringHeaders());

	return $headerString;
}