Если используется msmtp (установлен BitrixVM) и выводятся ошибки вида
<-- 550 5.7.0 Sender or From header address rejected: not owned by authorized user
Скорее всего bitrix отправляет письма, указывая отправителя в заголовке From, но msmtp их не может читать. В таком случае можно использовать параметр --read-envelope-from.
Однако, в том же тесте системы, заголовок From не передается, как и в некоторых других ситуациях, тогда Битрикс не отправляет письма и выводит ошибки:
envelope from address extracted from mail: (null) loaded system configuration file /etc/msmtprc loaded user configuration file /home/bitrix/.msmtprc falling back to default account msmtp: account default from /home/bitrix/.msmtprc: envelope-from address is missing
Нашлось простое решение — скрипт, который смотрит, есть ли заголовок письма, если да, то запускает msmtp с параметром --read-envelope-from, иначе запускается стандартно.
Что бы избавиться от ошибки "not owned by authorized user" — создаем скрипт /usr/bin/bitrix_email.sh с содержимым:
#!/bin/bash export HOME=/home/bitrix args=$@ message_body="" while read line; do message_body="$message_body$line\n" done < /dev/stdin if [[ $message_body == *"From:"* ]]; then echo -e "$message_body" | /usr/bin/msmtp --debug -t -i --read-envelope-from $args else echo -e "$message_body" | /usr/bin/msmtp --debug -t -i $args fi
Делаем скрипт запускаемым
chmod +x /usr/bin/bitrix_email.sh
Далее прописываем этот скрипт в /etc/php.d/bitrixenv.ini , если у вас bitrixVM или в ином в вашем случае
sendmail_path = /usr/bin/bitrix_email.shПерезапускаем php-fpm или httpd
service httpd restart
Всё, теперь при отправке почты отправитель будет браться из заголовков письма From:, если задан такой заголовок, иначе как раньше.
Буду рад, если эта статья поможет избавиться от ситуации, в которой Битрикс не отправляет письма.
Fooko
|
Спасибо
|
Александр
|
||
Пожалуйста |
||
Илья Екамасов
|
Спасибо огромное! Ты просто нереально помог!
|