1. Bitrix VM последняя версия окружения и портала 2. Настроена почта на яндекс.коннект из menu.sh по инструкции 3. При отправке писем из карточки crm все уходит, в home/bitrix/msmtp.log все ок 4. Пишем бизнес процесс с любым уведомлением, добавляем поле уведомления на почту (если пользователь не авторизован) https://prnt.sc/ur7d9t 5. Письмо НЕ отправляется, смотрим лог - Oct 01 12:32:02 host=smtp.yandex.ru tls=on auth=on user= user@domain.ru from= user@domain.ru recipients=user2 @domain.ru smtpstatus=550 smtpmsg='550 5.7.0 Sender or From header address rejected: not owned by authorized user 1601544722-1iAcs59Hlk-W2mmsTi3' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE
6. Нифига не понимаю.. Окей, настраиваю дебаг msmtp 7. Смотрю дампы. Если отправляю письма из CRM то дампы в /tmp/mail видны если через бизнес процесс - нет дампов. Но в логе видны ошибки отправки.
Вопрос. Как оно блин отправляет минуя скрипт записи в дамп и почему ругается на autorized user?
Дмитрий Б написал: Вопрос. Как оно блин отправляет минуя скрипт записи в дамп и почему ругается на autorized user?
Есть несколько способов отправки: 1) Мгновенная отправка (прямое выполнение bxmail) 2) Скрытая отправка (отправка без записи, почти прямое выполнение, но с обработкой) 3) Запись в b_event
Скорее всего у вас в БП создается отправка и записывается в b_event и время отправки еще не пришло (несколько минут)
Александр Медведев, спасибо за капитанство и интересную историю. По английски читать тут все умеют, вопрос был почему письма не ловит скрипт и в итоге от кого письма уходят.
Андрей Николаев, спасибо, погуглил. Итоговое решение для истории:
Настраиваем отлов писем с bxmail через добавление кода в dbconn.php
Код
// определим константу LOG_FILENAME, в которой зададим путь к лог-файлу
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/mylog-6665444.txt");
//дебаг почты
function custom_mail($to, $subject, $message, $additional_headers='', $additional_parameters='')
{
AddMessage2Log(
'To: '.$to.PHP_EOL.
'Subject: '.$subject.PHP_EOL.
'Message: '.$message.PHP_EOL.
'Headers: '.$additional_headers.PHP_EOL.
'Params: '.$additional_parameters.PHP_EOL
);
if ($additional_parameters!='') {
return @mail($to, $subject, $message, $additional_headers, $additional_parameters);
} else {
return @mail($to, $subject, $message, $additional_headers);
}
}
Пробуем отправить письма, смотрим лог. Видим что адрес портала в настройках сайта /bitrix/admin/site_edit.php?lang=ru&LID=s1 был указан неправильно.
Особое спасибо Антону Долганину за полезный комментарий
Александр Медведев написал: В пункте 2 ты настроил отправку от конкретного пользователя.В пункте 4 ты пытаешься отправить письмо от другого пользователя
У меня такая же проблема. Если письмо уходит например, из бизнес-процесса, то норм (потому что работает настройка smtp), а если пользователь отправляет письмо из своей почты (клиент Битрикса), то в логах ругань: Sender or From header address rejected: not owned by authorized user
По идее, Битрикс должен как-то на лету подменять настройки smtp, в случае когда почти идет с клиента Битрикса от какого-то пользователя, но, видимо, этого не происходит.
Александр Медведев написал: В пункте 2 ты настроил отправку от конкретного пользователя.В пункте 4 ты пытаешься отправить письмо от другого пользователя
У меня такая же проблема. Если письмо уходит например, из бизнес-процесса, то норм (потому что работает настройка smtp), а если пользователь отправляет письмо из своей почты (клиент Битрикса), то в логах ругань: Sender or From header address rejected: not owned by authorized user
По идее, Битрикс должен как-то на лету подменять настройки smtp, в случае когда почти идет с клиента Битрикса от какого-то пользователя, но, видимо, этого не происходит.
Ответ на запрос. На данный момент с яндексом действительно наблюдается такая ситуация. В данной статье даны причины и пути решения ситуации с почтой https://helpdesk.bitrix24.ru/open/13118632
Feb 21 19:59:36 host=smtp.yandex.ru tls=on auth=on user=%%%%%%%.ru from=%%%%%%%.ru recipients=hosting_test@bitrixsoft.com mailsize=153 smtpstatus=250 smtpmsg='250 2.0.0 Ok: queued on vla1-cde8305024b9.qloud-c.yandex.net as 1613926776-Pjndynvi8W-xZJO1unm' exitcode=EX_OK Feb 21 19:59:37 host=smtp.yandex.ru tls=on auth=on user=%%%%%%%.ru from=%%%%%%%.ru recipients=hosting_test@bitrixsoft.com,noreply@bitrixsoft.com mailsize=187496 smtpstatus=250 smtpmsg='250 2.0.0 Ok: queued on iva8-174eb672ffa9.qloud-c.yandex.net as 1613926777-IiezJhWU3P-xanOWJKn' exitcode=EX_OK фев 21 20:00:02 host=smtp.yandex.ru tls=on auth=on user=%%%%%%%.ru from=%%%%%%%.ru recipients=i%%%%%%%.ru smtpstatus=550 smtpmsg='550 5.7.0 Sender or From header address rejected: not owned by authorized user 1613926802-COFtUWJhjb-01nK7oNv' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE Feb 21 20:00:49 host=smtp.yandex.ru tls=on auth=on user=%%%%%%%.ru from=%%%%%%%.ru recipients=i%%%%%%%.ru smtpstatus=550 smtpmsg='550 5.7.0 Sender or From header address rejected: not owned by authorized user 1613926849-ZY4enuLlWY-0nnGD6S3' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE
Такая ситуация, тоже с яндексом.
Тестовые сообщения приходят. Тесты проходятся. Но с сайта, из форм письма не приходят на info
ТП Яндекса пишет: "Пожалуйста, выполните сетевую диагностику с помощью команды telnet в момент возникновения ошибки и пришлите мне результат в виде скриншотов: Для IMAP: telnet imap.yandex.ru 993 Для POP3: telnet pop.yandex.ru 995 Для SMTP: telnet smtp.yandex.ru 465
Обращаю ваше внимание, что каждую из команд необходимо вводить отдельно в новом окне. Эта информация поможет нашим специалистам во всем разобраться.
BodyDub, ужас! То есть на видео вы показываете что сидя на Windows 10 запускаете telnet команду и т.д. Но почту вы отправляете с виртуальной машины судя по логу выше... Как так можно
Сколько копий уже сточили про порты для smtp ynadex - не пересчитать) Видимо мало, надо еще и еще и еще Порт 465 только для почтовых клиентов типа Outlook и т.д. Для vm нужно или 25 или 587. Коннект и отправку будет осуществлять ваша виртуальная машина а не почтовый клиент на Windows. Даже в курсе все расписали https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=37&LESSON_ID=12265&LESS... но нет, 465!
А дальше классика:
Цитата
BodyDub написал: Feb 21 20:00:49 host=smtp.yandex.ru tls=on auth=on user=%%%%%%% .ru from=%%%%%%% .ru recipients= i%%%%%%%.ru smtpstatus=550 smtpmsg='550 5.7.0 Sender or From header address rejected: not owned by authorized user 1613926849-ZY4enuLlWY-0nnGD6S3' errormsg='the server did not accept the mail' exitcode=EX_UNAVAILABLE
то есть настройка почты в машине была с данными ящика user1@yandex.ru, но отправляем упорно от user2@yandex.ru. Яндекс вам пишет, что делать так нельзя, это спам) Как быть - настроить правильно раз, вашу форму заставить отправлять данные с тем ящиком Яндекс что настроен.