Битрикс24 — что делать, если из портала не приходят письма — продолжение


Ранее я уже писала о том, как диагностировать проблему недоставки писем из портала Битрикс24, развернутого в локальной сети клиента, и как ее решать.

Недавно мне попался кейс, который показал мне, что моя методика, описанная в данном посте, не полна и требует расширения.

Битрикс24 был развернут в локальной сети клиента. Почтовый сервер так же был развернут в локальной сети клиента. Доступа в локальную сеть клиента нам не дали — нужно было решить проблему, консультируя по скайпу админа (вообще-то мы так не работаем — это было исключение).

Письма, отправленные из CRM Битрикс24, не доходили даже до тестового сервиса www.mail-tester.com Сотрудники клиента отправляли письма из корпоративных ящиков через веб-интерфейс почтового сервера, доступного в локальной сети.

Я решила, что в данной ситуации будет проще сразу перенастроить отправку почты из Битрикс24 через SMTP. Для того, чтобы проверить, работает ли в локальной сети клиента возможность отправки писем по SMTP, я попросила админа клиента, чтобы он поставил себе на компьютер оутлук и отправил мне письмо через оутлук со своего корпоративного почтового ящика. Убедившись, что, SMTP у клиента работает, и выяснив, что оно работает без TSL, я прислала админу клиента функцию, использующую библиотеку phpmailer.

function custom_mail($to, $subject, $message, $additionalHeaders = '', $additional_parameters='')
{
 
require_once __DIR__ . '/phpmailer/PHPMailerAutoload.php';
 
$arr = explode("\n", $additionalHeaders);
 
	if (is_array($arr))
	{
		foreach ($arr as $key => $value) {
			$arrr = explode(":", $value);
			if($arrr[0] == 'X-Bitrix-Posting') $postingID = $arrr[1];
		}
	}
try
{
 
		$mail = new PHPMailer();
		$mail->CharSet = 'UTF-8';
		$mail->IsHTML(true);
		$mail->IsSMTP();
		$mail->Timeout=30;
		$mail->Host = 'Хост';
		$mail->Port = 25;
		$mail->SMTPDebug = 2;
		$mail->SMTPAuth   = true;
		$mail->Username = 'Логин';
		$mail->Password = 'Пароль';
		$mail->SetFrom('ОтКого');
		$mail->AddAddress($to);
		$mail->Body = $message;
		$mail->Subject = $subject;
 
		$mail->AddBCC('ОтКого', 'Письмо c портала на '.$to);
 
 
		$arr = explode("\n", $additionalHeaders);
 
			if (is_array($arr)){
				foreach ($arr as $key => $value) {
					$arrr = explode(":", $value);
					$addh = $mail->HeaderLine($arrr[0], $arrr[1]);
 
					if($arrr[0] == 'Content-Type') $mail->ContentType = $arrr[1];
				}
			}
		AddMessage2Log("SENDING...", "STATUS");
		$status = $mail->Send();
		AddMessage2Log($status, "STATUS");
		if (!$status)
		{
			AddMessage2Log($mail->ErrorInfo, "ERROR");
		}
	
 
 
} //try
catch (phpmailerException $e) 
{
	AddMessage2Log($e->errorMessage(), "ERROR_SENDING");
} 
catch (Exception $e) 
{
	AddMessage2Log($e->getMessage(), "ERROR_SENDING");
}

return ($status);
 
 
}

которая позволила порталу отправлять письма по SMTP через специально заведенный для портала ящик.

, ,

Добавить комментарий

Ваш адрес email не будет опубликован.