Была у меня в закладках хорошая статейка, а щас вот открыл - а ее нет:( хорошо, хоть у гугла есть сохраненная копия страницы. автор, простите за репост без подписи ...
В веб-окружении Битрикса по-умолчанию стоит msmtp для отправки писем. Если ваш домен привязан к Яндекс.Почте для домена, и вы хотите отправлять почту через реально существующий почтовый ящик с авторизацией, вам придётся внести в файл конфигурации некоторые изменения, чтобы всё работало хорошо.
Файл /home/bitrix/.msmtprc:
account default logfile /var/log/msmtp.log host smtp.yandex.ru #(smtp.gmail.com - для гугла) # port 587 # именно этот порт! #lkz гугля рекомендуют ставить 465, хотя в просторах сети читал, что и 587 подходит ...# from robot@domain.ru keepbcc on auth on user robot@domain.ru password <password> tls on tls_starttls on # обязательно для Яндекс.ПДД tls_certcheck off
P.S: при работе с GMail вторую строку (tls_starttls) наоборот включать не нужно.
Полный файлик с настройками для gmail:
account default logfile /var/log/msmtp.log host smtp.gmail.com port 587 from user@gmail.com auth on user user@gmail.com password password tls on tls_starttls on tls_certcheck off keepbcc on
Для проверки корректности настройки можно выполнить из сервера команду:
php -r "mail('test@email.com', 'Test', 'Test');"
Для проверки корректности работ из сайта, необходимо в командной строке выполнить код:
$sendTo='moe_mylo@gmail.com';
$sendFrom = 'otpravitel@bitrix.ru';
if (mail($sendTo,"test subject", "test body","From: ".$sendFrom))
echo "Сообщение передано функции mail, проверьте почту в ящике.";
else
echo "Функция mail не работает, свяжитесь с администрацией хостинга.";
Только email-адресы ставьте ваши вместо адресов из примера
Пример из комментариев к посту в блоке с примером конфигурационного файла для настройки яндекс-почты на домене:
account default logfile /var/log/msmtp.log host smtp.yandex.ru port 587 from site@site.ru auth on user site@site.ru password 123456 tls on tls_starttls on tls_certcheck off keepbcc on
Пример настройки для mail.ru
account default logfile /var/log/msmtp.log host smtp.mail.ru port 587 # именно этот порт! На указанный в манах маила порт 465 не отправляется - просто висит и все from robot@domain.ru keepbcc on auth on user robot@domain.ru password tls on tls_starttls on tls_certcheck off
И, напоследок, небольшой пример из форума по настройке отправки почты с сайта (только! для случаев, когда сайт не должен получать почту!). Перечислю просто основные шаги. По ссылке можно посмотреть со скриншотами и подробными комментариями.
- Авторизуемся в BitrixVM.
- Если это первый запуск и пул сайтов еще не создавался - создаем ("Manage Hosts in the pull" -> "Create ...")
- Заходим в "Manage sites in the pull"
- Выбираем "Change email settings on site"
- И по шагам делаем следующее:
- Вводим Enter from adress - это адрес по умолчанию с которого будут приходить все электронные письма с сайта. Жмем Enter после ввода email адреса.
- Enter server address or DNS - это IP адрес сервера или DNS. Для текущего сервера я оставил пустым (тоесть по умолчанию будет использоваться значение указанное в скобках). Жмем Enter.
- Enter server port - тут можно жать сразу Enter если у вас почта без шифрования (порт по умолчанию 25). Для шифрования указываете 443.
- Do you need auth options for - Нужна ли вам авторизация на SMTP сервере. Если у вас только отправляются уведомления с сервера то жмете N.
- Do you need TLS enabled for - Включить ли TLS. Я не включал, так как с включенным TLS поста у меня не приходила.
- В конце жмете Enter и проверяете работает ли почта. Я проверял через уведомления с сайта.
Если почта уходит с сервера, но не уходит с сайта
Если почта уходит с сервера, но не уходит с сайта рекомендую проверить права доступа к файлу конфигурации (/home/bitrix/.msmtprc). Файл должен принадлежать пользователю "bitrix" и иметь права доступа на чтение и запись только из-под этого пользователя.
Если указанное утверждение не выполняется - нужно сменить владельца:
chown bitrix:bitrix .msmtprc
И установить права пользователя на чтение/запись:
chmod 600 .msmtprc
