Задать вопрос
@Aricus

Почему в почтовом шаблоне выводится текст письма перед самим html-письмом в 1С-Битрикс?

Есть сайт на 1С-Битрикс. Есть письмо, отправляемое через почтовые события. Получаю я его в таком виде:
62ce9a12dad49236526507.png
Что-то тут явно лишнее. Пожалуйста, помогите найти источник проблемы.
Кастомная функция отправки почты через SMTP (логин-данные за***):
// Логи почты
function custom_mail($to, $subject, $body, $file=[]) {
	try {
		require_once 'lib/PHPMailer/src/Exception.php';
		require_once 'lib/PHPMailer/src/PHPMailer.php';
		require_once 'lib/PHPMailer/src/SMTP.php';
		$mail = new PHPMailer\PHPMailer\PHPMailer();
		$loging = '';
		$mail->isSMTP();   
		$mail->CharSet = "UTF-8";
		$mail->SMTPAuth   = true;
		$mail->SMTPDebug = 2;
		$mail->Debugoutput = function($str, $level) {
			St\Param::remember('mailLog', St\Param::get('mailLog').$str.PHP_EOL);
		};
		// Настройки вашей почты
		$mail->Host       = 'smtp.***'; // SMTP сервера вашей почты
		$mail->Username   = '***'; // Логин на почте
		$mail->Password   = '***'; // Пароль на почте
		$mail->SMTPSecure = 'tcp';
		$mail->Port       = ***;
		$mail->setFrom('shop@module-electronic.ru', 'Модуль Электроник'); // Адрес самой почты и имя отправителя
		// Получатель письма
		$mail->addAddress($to);
		//$mail->addAddress('youremail@gmail.com'); // Ещё один, если нужен
		// Прикрипление файлов к письму
		if (!empty($file['name'][0])) {
			for ($ct = 0; $ct < count($file['tmp_name']); $ct++) {
				$uploadfile = tempnam(sys_get_temp_dir(), sha1($file['name'][$ct]));
				$filename = $file['name'][$ct];
				if (move_uploaded_file($file['tmp_name'][$ct], $uploadfile)) {
					$mail->addAttachment($uploadfile, $filename);
					$rfile[] = "Файл $filename прикреплён";
				} else {
					$rfile[] = "Не удалось прикрепить файл $filename";
				}
			}   
		}
		// Отправка сообщения
		if($body != strip_tags($body)) {
			$mail->isHTML(true);
		}
		$mail->Subject = $subject;
		$mail->Body = $body;
		// Проверяем отравленность сообщения
		if ($mail->send()) {
			AddMessage2Log('Успешная отправка почты');
			$return = true; 
		} else {
			AddMessage2Log('Почта не отправлена');
			$return = false;
		}
		AddMessage2Log('Процесс отправки почты:'.PHP_EOL.St\Param::get('mailLog'));
		return $return;
	} catch (Exception $e) {
		AddMessage2Log('Ошибка отправки почты'.PHP_EOL.$e);
		return false;
	}
}

Тема оформления (лишние данные за***):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<style>
		body
		{
			font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
			font-size: 14px;
			color: #000;
		}
	</style>
</head>
<body>
<div style="background:#f1f2f6;font-family:'arial' , 'helvetica' , sans-serif;height:100% !important;margin:0;padding:0;width:100% !important">
***
								<td valign="top" style="font-family:'verdana';font-size:14px;line-height:22px;margin:0;padding:9px 18px 9px 18px;word-break:break-word; padding-bottom:1em">
									#WORK_AREA#
								</td>
***
</div>
</body>
</html>

Почтовый шаблон:
62cea65c1e7f3801903960.png
В логах - успешная отправка письма, включая все лишние строки
  • Вопрос задан
  • 145 просмотров
Подписаться 2 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы