Недавно перенесли внутренний корпоративный портал с хостинга TimeWeb на выделенный виртуальный сервер (VPS), на котором установили виртуальную машину Битрикс. Первая сложность, с которой пришлось столкнуться — не стали уходить письма с сайта. В документации Битрикс не удалось найти подходящего решения, поэтому подготовили описание настройки отправки писем через Google Mail.
После размещения сайта на новой площадке в первую очередь необходимо выполнить проверку сайта стандартными средствами Битрикс. В отчете присутствовали только ошибки, затрагивающие почтовую подсистему:
Настройка сервера
Для настройки почтовой подсистемы на работу с gmail можно воспользоваться скриптом настройки виртуальной машины Битрикс, который автоматически запускается при входе в систему под любым из пользователей root или bitrix:
Также полезно знать, что его можно закрыть и перейти к работе со стандартной оболочкой bash, нажав Ctrl-C. А снова открыть его возможно в любое время, выполнив команду:
$ ~/menu.sh
Теперь можно настроить почтовую систему. Для этого, после запуска скрипта настройки, нужно нажать 1 (пункт «Mail sending system parameters») и затем Enter. После этого мы попадем в пошаговый мастер настройки, где на каждом шаге необходимо указать требуемые данные. Пример настройки:
Соответственно, необходимо указать следующие данные:
- Default server address — адрес по умолчанию, который будет указан в поле «От» для отправляемых писем.
- Username — логин для доступа к gmail-аккаунту. Если Вы используете Google Apps, то он будет иметь видusername@yourcompany.ru.
- Password — пароль для доступа к gmail-аккаунту.
Таким образом, настройки почтовой подсистемы Битрикс для работы с Google Mail выглядят следующим образом:
- SMTP server: smtp.gmail.com
- SMTP port: 587
- Default sender address: username@yourcompany.ru
- Is SMTP authorization required?: Yes
- Username: username@yourcompany.ru
- Password: **********
- Is TLS required?: Yes
После указания всех настроек нужно утвердительно ответить на последний запрос (Save changes?) и еще раз запустить проверку сайта. На этот раз она должна пройти без проблем.
Настройка отправки писем по cron
Может случиться, что проверка сайта после всех произведенных действий отобразит другую ошибку — «Отправлено. Время отправки: 2.57 сек». Это значит, что почта работает, но очень медленно. Поэтому рекомендуется запуск агентов выполнять по cron, чтобы сайт постоянно не подвисал, когда на него заходишь.
Для этого сначала необходимо установить строчку в файле/home/bitrix/www/bitrix/php_interface/dbconn.php (отредактировать можно через административный интерфейс Битрикс «Файлы и папки» в режиме «Редактировать как PHP»):
define('BX_CRONTAB_SUPPORT', true);
Если эта строка уже присутствует в файле, то нужно проверить, чтобы она выглядела так же. Если ее в файле нет, то нужно добавить эту строчку в конец файла перед закрывающим тегом ?>.
Дальше необходимо настроить запуск cron в операционной система, для чего выполнить команду в оболочке bash сервера:
# crontab -e
В открывшемся окне нажать клавишу i для перехода в режим редактирования (используется редактор vi) и добавить следующую строку:
*/3 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
После этого нажать клавишу Esc, набрать символы :wq и нажать Enter. После этого редактор должен закрыться, и вновь отобразится строка bash.
В строке выше Вы указали, что запускать агентов необходимо каждый 3 минуты. Проясню частое заблуждение о том, что все агенты будут выполняться с этой частотой. У каждого агента существует свое расписание (раз в час/день/месяц и так далее), настраиваемое через административный интерфейс Битрикс. Операционная система будет лишь каждый 3 минуты «предлагать» каждому из агентов запуститься, а тот уже в соответствии со своим расписанием это предложение примет или нет. Проще говоря, частота запуска в cron означает минимальный интервал запуска агентов, но не регламентирует частоту их исполнения.
Сейчас отправка почты настроена, можно проверять работу на деле.