Дата последнего изменения: 09.06.2025
Данная информация пригодится для ручной настройки и диагностики ошибок с почтой в Виртуальная машина 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@mail.ru 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