Как не странно, но из коробки в Битриксе нет возможности настроить отправку писем через SMTP. Есть несколько бесплатных расширений, но иногда удобнее настроить все руками.
Как отправлять почту в битриксе через SMTP
19.09.2019
Для переопределения функционала по отправки писем в CMS Bitrix , нужно в файле /bitrix/php_interface/init.php добавить функцию:
function custom_mail($to, $subject, $message, $additionalHeaders = '') { // Код для отправки писем. }
Для работы с SMTP использовал библиотеку phpmailer (Устанавливал через Composer )
Конечный код (нужно подставить данные от своего почтового ящика):
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; function custom_mail($to, $subject, $message, $additionalHeaders = '') { require_once($_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php'); $mail = new PHPMailer(); /* Решение проблем для старых версий Битрикса, когда письма приходят с закодированным заголовком $subject = str_replace('=?UTF-8?B?', '', $subject); $subject = str_replace('?=', '', $subject); $subject = base64_decode($subject); //*/ try { $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->SMTPKeepAlive = true; $mail->SMTPDebug = 1; $mail->SMTPSecure = 'ssl'; $mail->Host = 'smtp.yandex.ru'; $mail->Port = 465; // 587 $mail->Username = 'no@oddler.ru'; $mail->Password = 'Password'; $mail->CharSet = 'UTF-8'; // 'Windows-1251' $mail->SetFrom($mail->Username); $mail->AddAddress(trim($to)); $mail->Subject = $subject; $mail->MsgHTML($message); $bRet = $mail->Send(); $mail->ClearAddresses(); $mail->ClearAttachments(); return $bRet; } catch (Exception $e) { die('Message could not be sent. Mailer Error: '. $mail->ErrorInfo); } }