Ошибка инициализации шифрования битрикс 24 smtp

По умолчанию все письма отправляются через сервера Битрикс24. Но каждый сотрудник может настроить отправку писем с почтового ящика через сторонний SMTP-сервер. Сделать это можно как во время подключения почтового ящика к Битрикс24, так и при отправке письма из CRM.

Подключения почтового ящика к Битрикс24

При подключении своего почтового ящика можно указать настройки внешнего SMTP-сервера:

Настройки внешнего SMTP-сервера

В зависимости от провайдера подключения SMTP-настройки могут содержать разное количество полей. Полные настройки для SMTP (сервер, порт, логин, пароль) доступны только при подключении почтового ящика через провайдера IMAP.

Далее все исходящие письма с этого ящика будут идти через указанный внешний SMTP-сервер, либо конкретный выбранный сервис.

Отправка писем из CRM через внешний SMTP-сервер

Сотрудник также может настроить отправку писем из CRM с почтового ящика через сторонний SMTP-сервер.

Просто выберите в форме создания письма От кого пункт Добавить отправителя:

Добавить отправителя

Впишите имя и фамилию отправителя и почтовый адрес, а затем нажмите на ссылку SMTP-сервер:

Отправка писем через SMTP-сервер

Укажите сервер, порт, логин и пароль для доступа к почтовому серверу, а также лимиты отправки писем в сутки. Будьте внимательны при вводе данных SMTP-сервера. Письма не будут доставляться, если данные указаны некорректно.

Обратите внимание! При подключении исходящих писем через внешний SMTP-сервер, если на нем есть SSL-сертификат, то он обязательно должен быть валидным, самоподписанный не подходит. Наличие сертификата определяется автоматически.

Выбор дополнительного отправителя доступен везде, где можно отправлять письма – в карточке элемента CRM (лиды, контакты, дела и т.д), в роботах CRM и в CRM-Маркетинге.

Настройки SMTP некоторых почтовых сервисов

Как правило, для включения отправки писем через внешний SMTP-сервер нужно всего лишь поставить галочку и ввести пароль, если потребуется.

Если почтовый ящик подключали через IMAP, то для настройки исходящих писем, помимо вашего логина и пароля, вам понадобятся еще smtp-сервер и порт (465 или 587). Получить их можно в документации каждого сервиса:

  • Mail.ru
  • Yandex.ru
    Включить опцию «С сервера imap.yandex.ru по протоколу IMAP» в Настройки → Почта → Все настройки → Почтовые программы и включить использование паролей приложений. Подробнее читайте в отдельной статье.
  • Rambler.ru
    Включить опцию «Доступ к почтовому ящику с помощью почтовых клиентов» в Настройки → Программы
  • Gmail.com
    Включить опцию «Включить IMAP» в Настройки → Все настройки → Пересылка и POP/IMAP → Доступ по протоколу IMAP и включить небезопасные приложения или использовать пароли приложений. Подробнее читайте в отдельной статье.
  • Yahoo.com
  • Outlook.com
  • iCloud.com
  • Office365
  • Beget.com
  • Timeweb.com

Некоторые особенности настройки SMTP-сервера для исходящих писем:

  • При настройке SMTP-сервера отправка писем будет происходить через серверы указанного SMTP-сервиса.

  • На некоторых SMTP-сервисах могут быть ошибки исходящей почты из-за использования паролей, содержащих спецсимволы: #, ^.

  • Подключение исходящих писем через внешний SMTP-сервер доступно любому сотруднику вашего Битрикс24.

  • При подключении исходящих писем через внешний SMTP-сервер, если на нем есть SSL-сертификат, то он обязательно должен быть валидным, самоподписанный не подходит. Наличие сертификата определяется автоматически.

  • В данном способе подключения дополнительных отправителей работает ограничение на отправку почты.

  • Важно! Сами SMTP-сервисы могут иметь свои лимиты на отправку через них рассылок и могут ограничивать ваши рассылки, вплоть до полной блокировки почтового аккаунта, через который будут рассылаться письма.

    Например, у Яндекса и Google по умолчанию лимит на отправку – 500 писем в сутки. Если в письме несколько получателей, то письмо каждому из них считается отдельным письмом. Этот ежесуточный лимит может изменяться на основании их собственных алгоритмов подсчета благонадежности пользователя. Подробнее про лимиты почтовых сервисов читайте в отдельной статье.

  • В коробочной версии Битрикс24 настройка отправителей через свой SMTP-сервер в публичной части Битрикс24 недоступна и осуществляется на стороне сервера системным администратором (через меню виртуальной машины BitrixVM или конфигурационные файлы).

Спасибо, помогло!

Спасибо :)


Это не то, что я ищу


Написано очень сложно и непонятно


Есть устаревшая информация


Слишком коротко, мне не хватает информации


Мне не нравится, как это работает

Преимущества отправки почты через SMTP

SMTP (англ. Simple Mail Transfer Protocol) – это протокол передачи почты. Он обеспечивает простую передачу почтовых отправлений. Его основная задача — отправка и контроль исходящих сообщений.

Преимущества использования SMTP-сервера:

  • Отправка большого количества сообщений без ограничений виртуального хостинга;
  • Безопасная передача сообщений с большей вероятностью их попадания в папку «Входящие», вместо «Спам»;
  • Фильтрация сообщений на вероятность наличия вирусов или спама;
  • Повышенная безопасность за счет авторизации пользователя, использующего SMTP-сервер.

Подключение и настройка SMTP в Битриксе

По-умолчанию, Битрикс не поддерживаем SMTP протокол. Для работы с ним необходимо установить соответствующий SMTP модуль из Маркетплейса.

Есть четыре бесплатных модуля SMTP и два платных. По отзывам из бесплатных наиболее устойчивый и работоспособный — модуль SMTP от студии ВебПростор.

Установка модуля «Отправка почты через SMTP»

Для установки модуля SMTP требуется наличие модуля «Ядро для модулей» (будет предложено добавить в процессе установки) и не должно быть ошибок при работе с сокетами (Настройки/Инструменты/Проверка системы).

Настройка модуля «Отправка почты через SMTP»

Модуль гарантированно взаимодействует с сервисами:

smtp.yandex.ru — для Яндекс.Почта,
smtp.gmail.com — для Gmail
smtp.mail.ru — для Mail.ru

А также с нашим хостингом для Битрикс.

Укажите соединения для выбранного сервиса в настройках SMTP:

Настройка отправки почты в Битриксе через SMTP протокол

Укажите настройки для авторизации, если требуется:

Настройка отправки почты в Битриксе через SMTP протокол

Также вы можете указать настройки для ручной отправки писем:

Настройка отправки почты в Битриксе через SMTP протокол

Не забудьте включить модуль на вкладке «Общие настройки»:

Настройка отправки почты в Битриксе через SMTP протокол

Вы можете указать настройки для автоматического создания или удаления файла init.php для сайтов.

Для диагностирования возникающих проблем или отслеживания логов операций, можете включить логирование и указать дополнительные настройки.

Логи следует периодически очищать, чтобы не перегружать таблицу. По достижении 1000 записей в логах, система выдаст уведомление о необходимости очистки таблицы.

Проверка отправки писем через модуль «Отправка почты через SMTP»

Перед включением модуля, обязательно проверьте отправку писем вручную.

Настройка отправки почты в Битриксе через SMTP протокол

Если есть ошибки, система уведомит об этом:

Настройка отправки почты в Битриксе через SMTP протокол

Ошибки можно посмотреть в журнале операций, если активированы соответствующие настройки:

Настройка отправки почты в Битриксе через SMTP протокол

Также обязательно проверьте автоматическое отправление писем. Например, путем оповещения своей учетной записи в карточке пользователя.

alt="Настройка

На этом установка и настройка модуля SMTP закончена.

 

Добрый день. Установил пробную версию Битрикс24 («1С-Битрикс24» — Корпоративный портал 18.1.5) отсюда

https://www.1c-bitrix.ru/download/intranet.php

. В процессе установки возникли две ошибки подключения к БД, но при повторении шага снова не появлялись, то есть проект был установлен без ошибок. При попытке подключить почту, выдает сообщение «Ошибка подключения к серверу». Раньше всё было в порядке, был точно так же установленный проект, в котором приходилось активно работать с отладчиком (xdebug на phpstorm), нужно было доработать оповещение об отправлении письма, не предусмотренное стандартным функционалом. В процессе доработки и появилась эта ошибка. После этого дважды переустанавливал проект, что не помогло решить проблему. Пробовал подключиться и через imap и не через imap — результат один и тот же.

 

Пользователь 1488151

Эксперт

Сообщений: 290
Баллов: 74
Регистрация: 18.10.2017

#2

0

08.04.2019 04:29:51

Цитата
ivanweber написал:
Добрый день. Установил пробную версию Битрикс24 («1С-Битрикс24» — Корпоративный портал 18.1.5) отсюда  https://www.1c-bitrix.ru/download/intranet.php . В процессе установки возникли две ошибки подключения к БД, но при повторении шага снова не появлялись, то есть проект был установлен без ошибок. При попытке подключить почту, выдает сообщение «Ошибка подключения к серверу». Раньше всё было в порядке, был точно так же установленный проект, в котором приходилось активно работать с отладчиком (xdebug на phpstorm), нужно было доработать оповещение об отправлении письма, не предусмотренное стандартным функционалом. В процессе доработки и появилась эта ошибка. После этого дважды переустанавливал проект, что не помогло решить проблему. Пробовал подключиться и через imap и не через imap — результат один и тот же.

Логин состоит без @yandex.ru

 

arnly, к сожалению, не помогло

 

Пользователь 1488151

Эксперт

Сообщений: 290
Баллов: 74
Регистрация: 18.10.2017

#4

0

08.04.2019 16:03:51

Цитата
ivanweber написал:
arnly , к сожалению, не помогло

1. Если почта новая и не подвязан телефон, то у почтовика может быть блокировка подключений, а также переадресации (защита от спама).
2. В пароле ошиблись.

 

Пользователь 1488151

Эксперт

Сообщений: 290
Баллов: 74
Регистрация: 18.10.2017

#5

0

08.04.2019 16:06:21

Цитата
arnly написал:

Цитата
ivanweber  написал:
arnly , к сожалению, не помогло

1. Если почта новая и не подвязан телефон, то у почтовика может быть блокировка подключений, а также переадресации (защита от спама).
2. В пароле ошиблись.

Что-то типо этого:

https://yandex.ru/support/mail/web/preferences/filters/forwarding.html#fw-doesnt-work

Не указаны персональные данные в Яндекс.Паспорте

Укажите в Яндекс.Паспорте достоверные персональные данные и привяжите к аккаунту номер телефона. Возможно, наша система безопасности сочла ваш аккаунт подозрительным и заблокировала ящик. Чаще всего это происходит из-за того, что к ящику не привязан номер телефона или в Паспорте указаны вымышленные имя и фамилия. На снятие блокировки обычно уходит пара часов.

 

А про пару часов скажу сразу, это бред. Минимум через сутки только работать начнёт, если повезёт. У mail.ru точно такая же защита.

 

arnly, пробовал и к новой почте подвязывать с тем же исходом, возможно ли, что по ip блокируют?

 

Попробовал ещё через почту рамблера по imap подключиться с тем же исходом. Повторюсь, проблема возникла при работе над сайтом с использованием отладчика xdebug в phpstorm. После этого я скачал новый дистрибутив и в рамках установки Б24 создавалась новая база. Сайт ставил на Open Server, в том числе ещё тогда, когда проблемы с подключением не возникало. Может ли быть так, что из-за работы с отладчиком я поломал какие-нибудь сетевые настройки компьютера? И если да, то какие например?

 

Пользователь 292840

Заглянувший

Сообщений: 1
Регистрация: 24.06.2015

#9

0

25.01.2020 02:01:56

Та же самая проблема. Ошибка подключения к серверу (110). Пароль перепроверил. Попробовал разные почты. Всегда — эта ошибка.
ХЭЛП.
Куплена коробочная версия Сайт+Битрикс 24.

Разбираем ошибки и методы их устранения.

Типовое подключение почты:

  1. В главном левом меню пункт «Почта».
  2. Выбираем подключить новую почту.
  3. Чаще всего мы подключаем через IMAP протокол.
  4. Для яндекс.почты нам надо заполнить E-mail, «Адрес IMAP сервера» = imap.yandex.ru
  5. Порт 993
  6. Обязательно включить – Защищенное соединение.
  7. Вводим «Логин»
  8. Далее «Пароль»

ВАЖНО:

  • «Адрес IMAP сервера» должен быть написан именно так и без ошибок — imap.yandex.ru.
  • В облачной версии есть дополнительный параметр, который нужно обязательно включить — разрешить отправку через SMTP.

Смоделируем ситуацию:

Мы намерено ошиблись в написании «Адрес IMAP сервера».

Система сразу информирует нас «красной строкой» о том, что произошла ошибка соединения с сервером.

Допустим ошибку в логине или пароле.

Система сообщит об ошибке авторизации и во вкладке «подробнее» подскажет где искать причину.

Возможно появление сообщения ошибки IMAP протокола.

Устранить ее можно в глобальных настройках Яндекс почты. Режим «шестеренка», переход в раздел «прочее», пункт левого меню столбика «Почтовые программы». По умолчанию, часто настройки протокола отключены, их надо включить.

Активируем опции:

  1. Протокола IMAP.
  2. Портальный пароль.
  3. Дополнительные опции –включить сервер pop.yandex.ru
  4. Входящие.

ВАЖНО.

Если все настройки активированы правильно, то система начитает работать и открывается режим настройки папок для синхронизации писем. Почему это нужно сделать? Если не указать папки, то не будет работать синхронизация, фильтры, поступление писем, письма клиентов будут «пропадать» и теряться.

Основные этапы подключения почты:

  • Регистрация почты.
  • Авторизация (обязательная).
  • Включить протокол IMAP
  • Включить опцию принимать портальный пароль.
  • Указать верный порт.
  • Включить только защищенное соединение.

Подключенные коробки Битрикс24 к Яндекс.Почте часто стали не доставлять письма. Почему?

«Коробка» все письма портала отправляет от одного физического почтового ящика и делает подмену заголовков. Т.е. Ваш менеджер пишет от своей почты, но технически почта все равно отправляется от одного пользователя.

Почтовые системы считают такие письма измененными, а сам яндекс вводит дополнительные ограничения на доставку таких писем. Получаем узкое горлышко и не стабильную работу с обоих сторон (Отправитель и Получатель).

Что можно сделать и как заставить работать «коробку» с почтой?

  1. Арендовать и подключить внешний SMTP-сервер.
  2. Отказаться от Яндекс.Почты и создать свой почтовый сервер с соответствующим техническим обслуживанием.
  3. Создать виртуальный SMPT-сервер на сервере портала или отдельно взятой машине.
  4. При этом никто Вам не мешает оставить уже существующие корпоративные Яндекс почтовые ящики только на прием входящих писем.
  5. Для отправки исходящих писем использовать мобильные приложения и веб-интерфейс Яндекс.

Какие особенности при работе с внешним SMTP-сервером?

  1. Сервисы, которые дают в аренду SMTP-сервер (услуга может называться транзакционный почтовый сервер) предъявляют жесткие требования к качеству корреспонденции и в случае превышения порога ~0,3% спам писем, настроенный вами аккаунт будет заблокирован.
  2. Требуется грамотно произвести настройки ДНС, корпоративного сервера портала и самого сервиса, иначе письма будут попадать в СПАМ.

Сколько стоят предлагаемые решения?

  • Аренда серверов – есть бесплатные тарифы с ограничением до 10 000 писем в месяц, количества писем в день в час. Снятие ограничений и увеличение буфера решается ежемесячной платой в пределах 1 000 — 2 000 рублей.
  • Решение организации собственного почтового сервера решается индивидуально и зависит от количества корпоративных почтовых ящиков и настроек.

С уважением, Лаборатория автоматизации «‎LOG [IN] OFF»

Тестируем отправку писем

Отправка тестового письма из консоли

echo "Test text" | mail -s "Test title" test@yoursite.com

Проверяем работу функции mail из PHP консоли Битрикс

if( mail("test@yoursite.com", "Subject", "Text") ){
	echo 'Письмо успешно отправлено!'; }
else{
	echo 'Отправка письма не удалась!';
}

Проверяем работу сокетов

$fp = fsockopen("ssl://smtp.mail.ru", 465, $errno, $errstr, 30);
if (!$fp) 
	echo "Error: $errstr ($errno)\n";
else
	echo "Connected";
fclose ($fp)

Проверяем настройки Битрикс

Идем в Настройки > Настройки продукта > Почтовые и СМС события > Почтовые шаблоны и просматриваем шаблоны. Убеждаемся, что в поле От кого стоит #DEFAULT_EMAIL_FROM#

Идем в Настройки > Настройки продукта > Настройки модулей > Главный модуль > Почта и СМС в поле Email администратора сайта (отправитель по умолчанию) вписываем правильное значение почта отправителя

На всякий случай почту можно указать еще в поле E-Mail отдела продаж: по пути Настройки > Настройки продукта > Настройки модулей > Интернет-магазин > Настройки

Email должен совпадать во всех перечисленных случаях, плюс в настройках msmtp должен быть указан именно он

msmtp config для простой отправки через mail.ru

account default
logfile /home/bitrix/.msmtp.log
host mail.bitrixsoft.com
port 25
from user@email.com
auth off

msmtp config для простой отправки через smtp mail.ru

account default
logfile /home/bitrix/msmtp_default.log
host smtp.mail.ru
port 587
from no-reply@default.ru
keepbcc off
auth on
user no-reply@default.ru
password default
tls on
tls_starttls on
tls_certcheck off

msmtp config для простой отправки через smtp yandex.ru

account default
logfile /var/log/msmtp.log
host smtp.yandex.ru
port 587
from usr@yandex.ru
keepbcc on
auth on
user usr@yandex.ru
password PAss
tls on
tls_starttls on

msmtp config для простой отправки через smtp gmail.com

account default
tls on
tls_certcheck off
auth on
host smtp.gmail.com
port 587
user YOUR_EMAIL
from YOUR_EMAIL
password YOUR_PASSWORD

msmtp config для простой отправки через smtp timeweb.ru

# smtp account configuration for default
account default
logfile /home/bitrix/msmtp_default.log
host smtp.timeweb.ru
port 465
from YOUR_EMAIL
aliases /etc/aliases
keepbcc off
auth on
user YOUR_EMAIL
password YOUR_PASSWORD

tls on
tls_starttls off
tls_certcheck off

Получаем список писем

select * from b_event
where event_name like 'SALE_NEW_ORDER'
order by date_insert desc

Значения статусов отправки писем в колонке SUCCESS_EXEC

‘Y’  означает успешная отправка;
‘N’ или 0  письмо не отправлено;
‘F’  ошибка

Скрипт отправки почты через phpMailer

Устанавливаем composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Устанавливаем phpMailer

composer require phpmailer/phpmailer

Если команда composer не найдена, то пытаемся установиться его глобально

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Добавляем в init.php

require '/var/www/YOUR_SITE/vendor/autoload.php';

use Bitrix\Main\Application;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Перехват генерации почтового события с возможностью его отмены
AddEventHandler("main", "OnBeforeEventAdd", array("OnBeforeEventAddClass", "OnBeforeEventAddHandler"));
class OnBeforeEventAddClass
{
    function OnBeforeEventAddHandler(&$event, &$lid, &$arFields, &$message_id, &$files)
    {
        $connection = Bitrix\Main\Application::getConnection('default');//Получаем соединение с БД

        //Получаем шаблон письма
        $recordset = $connection->query("select SUBJECT, MESSAGE, MESSAGE_PHP from b_event_message where ACTIVE = 'Y' AND EVENT_NAME = '".$event."'")->fetchAll();
        $fields = $arFields;

        AddMessage2Log($arFields, "arFields");

        if(isset($recordset[0]['MESSAGE'])){//Проверяем есть ли шаблон
            $mask = $recordset[0]['MESSAGE'];
            $subject = $recordset[0]['SUBJECT'];

            foreach ($fields as $key => $value){
                if(!is_array($value) && strpos($key, '~') === false){//Исключаем из замены массивы и символы ~
                    //Заменяем все возможные паттерны
                    $mask = preg_replace('~\#'.$key.'\#~', $value, $mask);
                    $subject = preg_replace('~\#'.$key.'\#~', $value, $subject);
                }
            }

            $mask = preg_replace('~\#SITE_NAME\#~', COption::GetOptionString("main", "site_name", $GLOBALS["SERVER_NAME"]), $mask);
            $mask = preg_replace('~\#SERVER_NAME\#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $mask);
            $mask = preg_replace('~\#DEFAULT_EMAIL_FROM\#~', COption::GetOptionString("main", "email_from", "admin@".$GLOBALS["SERVER_NAME"]), $mask);

            $subject = preg_replace('~\#SITE_NAME\#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $subject);
            $subject = preg_replace('~\#SERVER_NAME\#~', COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]), $subject);


            if($mask) {//Ести тело сформировано, то запускаем отправку
                if(isset($fields['RS_USER_EMAIL'])){
                    if (filter_var($fields['RS_USER_EMAIL'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['RS_USER_EMAIL'];
                    }
                }

                if(isset($fields['EMAIL'])){
                    if (filter_var($fields['EMAIL'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL'];
                    }
                }

                if(isset($fields['EMAIL_RAW'])){
                    if (filter_var($fields['EMAIL_RAW'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_RAW'];
                    }
                }

                if(isset($fields['EMAIL_BUYER'])){
                    if (filter_var($fields['EMAIL_BUYER'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_BUYER'];
                    }
                }

                if(isset($fields['EMAIL_TO'])){
                    if (filter_var($fields['EMAIL_TO'], FILTER_VALIDATE_EMAIL)) {
                        $email = $fields['EMAIL_TO'];
                    }
                }


                if(!$email){
                    $email = 'default@email.ru';
                }

                if($email && filter_var($email, FILTER_VALIDATE_EMAIL)){
                    $cl = new OnBeforeEventAddClass;
                    if($cl->custom_mail($email, $subject, $mask,'','')){//Отправляем письмо
                        //AddMessage2Log($event, "Сообщение было отправлено");
                    }else{
                        //AddMessage2Log($event, "Ошибка. Сообщение отправлено не было");
                    }
                }else{
                    //AddMessage2Log($event, "Ошибка. Почта не найдена. Почта:");
                }

                return false;

            }else{
                //AddMessage2Log($event, "Ошибка. Нет тела письма");
            }
        }else{
            //AddMessage2Log($event, "Ошибка. Не найден шаблон письма");
        }

    }

    public function custom_mail($to, $subject, $message, $additionalHeaders = '', $additional_parameters)
    {
        // Instantiation and passing `true` enables exceptions
        $mail = new PHPMailer(true);

        $mail->IsSMTP(true); // enable SMTP
        $mail->SMTPDebug = 3;  // debugging: 1 = errors and messages, 2 = messages only
        $mail->SMTPAuth = true;  // authentication enabled
        $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 465;               // set the SMTP port for the GMAIL server

        $mail->Username = 'email'; // SMTP username
        $mail->Password = 'password'; // SMTP password

        $mail->CharSet = 'UTF-8';

        $mail->addAddress($to);
        $mail->setFrom('default@email.ru');

        //Set the subject line
        $mail->Subject = $subject;

        //Read an HTML message body from an external file, convert referenced images to embedded,
        //convert HTML into a basic plain-text alternative body
        $mail->msgHTML($message);

        //Replace the plain text body with one created manually
        $mail->AltBody = 'This is a plain-text message body';

        $d_message='';
        //preg_match('/From: (.+)\n/i', $additionalHeaders, $matches);
        //list(, $from) = $matches;
        $from = 'info@YOUR_SITE';
        $d_message.='$from - '.$from.' +++ '; $d_message.='$to - '.$to.' +++ ';
        $d_message.='$subject - '.$subject.' +++ ';
        $d_message.='$message - '.$message.' +++ ';
        $mail->setFrom($from);
        $mail->addAddress($to, ''); // Add a recipient

        //$mail->addReplyTo($from, '');
        //$mail->AddBCC($from);
        //$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
        //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name

        $mail->Subject = $subject;

        if($message != strip_tags($message)) {
            $mail->isHTML(true);
        }

        $mail->Body = $message;
        // $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        if(!$mail->send()) {
            AddMessage2Log($mail->ErrorInfo, "Mailer Error");
            return false;
        } else {
            return true;
        }
    }
}


//Перехват письма непосредственно перед отправкой
AddEventHandler('main', 'OnBeforeEventSend', Array("OnBeforeEventSendClass", "my_OnBeforeEventSend"));
class OnBeforeEventSendClass
{
    function my_OnBeforeEventSend($arFields, $arTemplate)
    {

        //получаем сообщение

    }
}

Для отправки писем с помощью phpMailer через smtp.mail.ru конфиг должен быть следующего вида:

$mail = new \PHPMailer\PHPMailer\PHPMailer(true);

$mail->IsSMTP(true); // enable SMTP
$mail->SMTPDebug = 1;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;  // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'ssl://smtp.mail.ru';
$mail->Port = 465;               // set the SMTP port for the GMAIL server

$mail->Username = 'USER_NAME'; // SMTP username
$mail->Password = 'USER_PASSWORD'; // SMTP password

Отладка через AddMessage2Log

В файле dbconn.php добавьте строчку define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");

cannot connect to localhost, port 25: Connection refused

После установки чистого Битрикс-окружения достаточно часто возникает эта ошибка. Чтобы исправить — используйте postfix

yum install postfix
service postfix start
chkconfig postfix on

the server sent an empty reply в логе msmtp

Добавляем в конфиг

tls_starttls off

Испрвление ошибок

Если вы пытаетесь отправить почту через smtp компании Google и получаете ошибку вида SMTP connect() failed, то зайдите в аккаунт гугл с которого отправляете почту. Откройте настройки, перейдите во вкладку Безопасность, найдите пункт «Ненадежные приложения, у которых есть доступ к аккаунту», перейдите в него и разрешите доступ небезопасным приложениям (ссылка)

Исправляем ошибку Mail command not found

yum install sendmail
yum -y install mailx
service sendmail start

Перевод агентов на крон

Редактируем файл /bitrix/php_interface/dbconn.php

Иногда требуется закомментировать строки подключения поддержки крона

define('BX_CRONTAB', true);
define('BX_CRONTAB_SUPPORT', true);

Перейдите на страницу Настройки > Инструменты > Командная PHP-строка и исполните следующий код:

COption::SetOptionString("main", "agents_use_crontab", "Y");
echo COption::GetOptionString("main", "agents_use_crontab", "N");

Откроем настройки крон

crontab -u bitrix -e или crontab -e

Добавляем запись:

*/1 * * * *  php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php >/dev/null 2>&1

Перезагружаем cron

systemctl restart crond.service

Настройка cron описана в документации от Битрикс

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Ошибка каменск 3597
  • Ошибка киа бонго p242f
  • Ошибка катализатора фольксваген тигуан
  • Ошибка катализатора фольксваген гольф
  • Ошибка катализатора тойота прадо 120

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

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: