Решаем проблему того, что письма не уходят с сайта на Битрикс.
Первоначальная настройка
Виртуальная машина Битрикс не умеет сама отправлять почтовые сообщения. Для этого ей требуется почтовый сервер. Бывает что такой сервер предоставляет хостинг провайдер за отдельную плату, но есть и бесплатный вариант - популярные почтовые сервера, такие как Яндекс почта.
Воспользуемся SMTP Яндекс почты для отправки наших сообщений. Возможно использовать другие сервисы, их настройка будет аналогичной.
Для работы нам потребуется логин и пароль от ящика, но яндекс не разрешает использовать основной пароль для доступа через SMTP. Для этого требуется создать отдельный доступ для почты. Перейдите в настройки безопасности своего аккаунта - https://id.yandex.ru/security/app-passwords и создайте отдельный пароль для почты. Подробнее в справке Яндекс. Так же в настройках яндекс почты следует разрешить доступ по SMTP и IMAP.
Когда у нас есть доступы, можно перейти к настройке.
Откройте в терминале сервер BitrixVM. При подключении автоматически открывается меню Битрикс. Если не открылось, можно вручную запустить скрипт: ~./menu.sh
Важно: настройки ведутся через пользователя root. Подключаться надо от его имени.
Для работы почты активируем Cron и Email.
Активация Cron
После открытия меню вы должны увидеть такое окно:
Следует перейти к пункту Configure pool sites, введя его номер и нажав Enter. Переходим в настройки Cron.
Если в статусе Cron стоит N, то включаем Cron его. Там вас спросят путь к сайту, его можно узнать открыв в браузере страницу сайта: /bitrix/admin/phpinfo.php?test_var1=AAA&test_var2=BBB и найдя там строку c DOCUMENT_ROOT.
Вводим всё что требует мастер настройки, смотрим чтобы по итогу в статусе появилось Y.
Настройка Email
Перейдя из самого начала меню в пункт Configure pool sites, переходим к настройках почты, открываем в нем мастер настройки.
Что вводить в мастере:
- Enter From email address — Введите ящик, с которого будет осуществляться отправка почты. Это ваш почтовый ящик, для которого у вас создан пароль. Если указать другую почту, сообщения либо вовсе не будут отправляться, либо будут уходить в спам. Например, vasiliy@yandex.ru
- Enter server address or DNS - smtp.yandex.ru
- Enter server port - 587
- Do you want to use SMTP authentification - y, активируем авторизацию, без нее не заработает.
- Enter login - снова вводим нашу почту с яндекса.
- Enter password — Введите созданный пароль для приложений от ящика, который создавали ранее (символы пароля не будут отображаться при вводе).
- Enter SMTP authentification method — Нажмите Enter, чтобы выбрать метод SMTP-авторизации по умолчанию — auto.
- Do you want to enable TLS - y, без шифрования яндекс не разрешает использовать SMTP.
- Нажмите Enter, чтобы завершить работу мастера.
Теперь почта должна успешно отправляться. Можно еще раз запустить проверку системы в админке Битрикс на сайте.
Если не работает после настройки
Первое, что стоит сделать - запустить проверку системы. Если проблема с отправкой на сервере - скорее всего отобразятся ошибки. Если ошибок нет - вероятно почта отправляется, но попадает в спам.
На виртуальном хостинге ошибки отправки обычно сразу можно увидеть, если открыть журнал:
На BitrixVM ошибки не пишутся в журнал. Надо открывать на сервере файл логов почты. Он находится в папке /home/bitrix, но может иметь несколько разное имя. У меня это /home/bitrix/msmtp_default.log.
Смотрим этот файл с помощью команды cat /home/bitrix/msmtp_default.log или tail -n30 /home/bitrix/msmtp_default.log.
У меня там ошибка:
host=smtp.yandex.ru tls=on auth=on user=***@yandex.ru from=***@yandex.ru recipients=***@yandex.ru smtpstatus=535 smtpmsg='535 5.7.8 Error: authentication failed: This user does not have access rights to this service' errormsg='authentication failed (method PLAIN)' exitcode=EX_NOPERM
Эта ошибка говорит о том, что мы ввели верные данные от аккаунта и авторизоваться получилось (иначе там ошибка о не верных логине и пароле), но у аккаунта нет разрешения на подключение через SMTP. Оно настраивается в настройках в почте Яндекс (скриншоты в начале статьи):
После данных манипуляций, почта должна начать отправляться. Но бывает что сообщения блокируются, так как походят на спам - тогда следует подождать 24 часа.