Дата последнего изменения: 23.03.2018
Данная информация пригодится для ручной настройки и диагностики ошибок с почтой в Виртуальная машина BitrixVM/BitrixEnv v.5.x.
В настройке используется пакет msmtp (он идет в стандартных зависимостях для пакета bitrix-env).
Из пакета приходят настройки php-модуля в файле /etc/php.d/bitrixenv.ini
:
sendmail_path = msmtp -t -i
При конфигурации из веб-интерфейса или из консольного меню:
# smtp account configuration for default account default logfile /home/bitrix/msmtp_default.log host 192.168.0.25 port 25 from name@site.ru keepbcc on auth on user name@site.ru password XXXXXXXXXXXXXX tls on tls_certcheck off
<Directory /home/bitrix/www/> ... php_admin_value sendmail_path "msmtp -t -i -a <ИМЯ_САЙТА>" </Directory>
/home/bitrix/.msmtprc
на /etc/msmtprc
(данное действие необходимо для заданий отправки почты, которые выполняются через crontab).Данные рекомендации будут полезны для автоматизации тестирования.
Для создания из web или консоли используется скрипт /opt/webdir/bin/bx-sites
.
При настройке почты он принимает следующие параметры:
bx-sites -o json -a email --smtphost=smtp.yandex.ru \ --smtpuser='ivan@yandex.ru' --password=XXXXXXXXXX \ --email='ivan@yandex.ru' --smtptls -s aliceгде:
-a email
- тип действия, которое мы выполняем для сайта (-h
позволит получить весь доступный список);--smtphost
- IP адрес или DNS имя хоста, через который будет отправляться почта;--smtpuser
- логин пользователя (в случае, если не используется данный параметр, можно опустить);--password
- пароль для авторизации на почтовом сервере;--email
- поле from в письме;--smtptls
- включает TLS при отправке почты;-s|--site
- название сайта (по умолчанию будет использован default).В разделе описаны найденные и решенные проблемы, а также способы отладки почтовых проблем.
Сен 04 14:41:11 host=smtp.yandex.ru tls=on auth=on user=bx@ya.ru from=bx@ya.ru recipients=3458@gmail.com smtpstatus=554 smtpmsg='554 5.7.1 Message rejected under suspicion of SPAM adxPcTaXWc-fB4SvmKU' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE
echo -e "test message" | /usr/bin/msmtp --debug -t -i name@site.ruтут может быть ошибка, например, загрузки конфигурации:
ignoring system configuration file /etc/msmtprc: Нет такого файла или каталога ignoring user configuration file /.msmtprc: Нет такого файла или каталога falling back to default account
В данном случае, ни один из файлов конфигурации не был найден, поэтому отправка не удалась.
/usr/bin/
и выставить права на исполнение:
#!/bin/bash export HOME=/home/bitrix tmp_dir=/tmp/mail args=$@ if [[ ! -d $tmp_dir ]]; then mkdir $tmp_dir chmod 777 $tmp_dir fi message_body="" while read line; do message_body="$message_body$line\n" done < /dev/stdin tmp_file=$(mktemp $tmp_dir/$(date +%Y%m%d_%H%M%S)_XXXXXXXXX) echo "=========================================" > $tmp_file echo "ARGV: /usr/bin/msmtp --debug -t -i $args" >> $tmp_file echo "=========================================" >> $tmp_file echo -e "BODY: $message_body" >> $tmp_file echo "=========================================" >> $tmp_file # send message echo -e "$message_body" | /usr/bin/msmtp --debug -t -i $args >> $tmp_file && 2>&1
/etc/php.d/bitrixenv.ini
изменить настройки почты:
sendmail_path = /usr/bin/test_email.sh
При создании письма из web-интерфейса вся информация сохраняется в каталоге /tmp/mail
, каждое письмо будет сохранено в отдельном файле.
Проблема:
Не отправляются письма уведомлений о заказах с сайта, статистика за день в BitrixVM v5.0.44-5.0.45.
HOME=/
, поэтому письма, отправка которых происходит из задания в Cron, не отправляются. /home/bitrix/.msmtprc
на /etc/msmtprc
- конфигурационный файл /etc/msmtprc
является системным файлом для утилиты и позволяет решить нахождение конфигурационного файла при таком параметре HOME
.Проблема:
Не отправляется почта по Cron-у, хотя символическая ссылка с /home/bitrix/.msmtprc
на /etc/msmtprc
есть.
PATH
.
>echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bitrix/bin
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/bitrix/bin