Задача: настроить отправку почты с сайта под управлением виртуальной машины 1С-Битрикс.
При использовании виртуальной машины 1С-Битрикс на ней уже установлено простое и эффективное средство для отправки почтовых сообщений с сайта - smtp-клиент под названием msmtp.
Для его настройки необходимо подключиться по SSH под пользователем root и во всплывающем меню выбрать шестой пункт:
6. Manage sites in the pool
и затем четвертый пункт:
4. Change email settings on site
Далее прописывается следующее:
Enter site name (default) or 0 to exit: default
По умолчанию default, если сайт один. Если на виртуальной машине несколько доменов, то прописывается необходимый домен из списка выше в меню.
Enter From email address (ex. info@domain.ru): info@domain.ru
Указывается Ваш почтовый ящик для отправки писем.
Enter server address or DNS (127.0.0.1): smtp.yandex.ru
Указывается SMTP-сервер для отправки писем. В качестве примера указан сервер Яндекс.
Enter server port (25): 587
Указывается порт для соединения с SMTP-сервером. Т.к. используется tls, то порт необходимо указывать 587.
Do you want to use SMTP authentication on smtp.yandex.ru:587? (N|y) Y
Вопрос об использовании SMTP аутентификации - соглашаемся (Y).
Enter login (info@domain.ru): info@domain.ru
Указываете логин, используемый для авторизации. Обычно логином выступает почтовый ящик.
Enter password: 123456
Вводите пароль от данного почтового ящика. Символы при вводе пароля не отображаются.
Enter SMTP authentication method (default: auto): auto
Метод аутентификации выбираете auto.
Do you want to enable TLS for smtp.yandex.ru:587 (n|Y): Y
Соглашаетесь с использованием TLS.
Настройка почты практически завершена. Так как файл настроек почты располагается в /home/bitrix, а при отправке почтового сообщения настройки подключения берутся из директории /root, необходимо создать симлинк и задать необходимые права на файл настроек:
ln /home/bitrix/.msmtprc /root/.msmtprc
chmod 0600 /home/bitrix/.msmtprc
Проверить корректность настройки можно, введя команду, указанную ниже, в консоли.
php -r "mail('test@email.com', 'Test', 'Test');"
Вместо test@email.com введите email на который хотите получить тестовое письмо с сервера. Если не приходит, можно посмотреть в логе msmtp, который расположен в /home/bitrix/msmtp.log.