Используем Google Mail для отправки почтовых сообщений из виртуальной машины Битрикс

7 августа 2013

Недавно перенесли внутренний корпоративный портал с хостинга TimeWeb на выделенный виртуальный сервер (VPS), на котором установили виртуальную машину Битрикс. Первая сложность, с которой пришлось столкнуться — не стали уходить письма с сайта. В документации Битрикс не удалось найти подходящего решения, поэтому подготовили описание настройки отправки писем через Google Mail.

После размещения сайта на новой площадке в первую очередь необходимо выполнить проверку сайта стандартными средствами Битрикс. В отчете присутствовали только ошибки, затрагивающие почтовую подсистему:

Image-1.png

Настройка сервера

Для настройки почтовой подсистемы на работу с gmail можно воспользоваться скриптом настройки виртуальной машины Битрикс, который автоматически запускается при входе в систему под любым из пользователей root или bitrix:

Image-3.png

Также полезно знать, что его можно закрыть и перейти к работе со стандартной оболочкой bash, нажав Ctrl-C. А снова открыть его возможно в любое время, выполнив команду:

$ ~/menu.sh

Теперь можно настроить почтовую систему. Для этого, после запуска скрипта настройки, нужно нажать 1 (пункт «Mail sending system parameters») и затем Enter. После этого мы попадем в пошаговый мастер настройки, где на каждом шаге необходимо указать требуемые данные. Пример настройки:

Image-2.png

Соответственно, необходимо указать следующие данные:

  • Default server address — адрес по умолчанию, который будет указан в поле «От» для отправляемых писем.
  • Username — логин для доступа к gmail-аккаунту. Если Вы используете Google Apps, то он будет иметь видusername@yourcompany.ru.
  • Password — пароль для доступа к gmail-аккаунту.

Таким образом, настройки почтовой подсистемы Битрикс для работы с Google Mail выглядят следующим образом:

После указания всех настроек нужно утвердительно ответить на последний запрос (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 означает минимальный интервал запуска агентов, но не регламентирует частоту их исполнения.

Сейчас отправка почты настроена, можно проверять работу на деле.