При ручном наборе номера можно выбирать канал для связи.
А при вызове из CRM эта настройка берётся из общих настроек телефонии. А мне бы её подменять автоматически.
|
[QUOTE]MartinBitrix написал:
Спасибо, с пользовательских почтовых ящиков отправляется почта, но теперь не отправляются сообщения с системного ящика(настройки которого прописаны в msmtp, никто не знает, как профиксить?[/QUOTE] /var/log/msmtp.log - там ищите ошибки. |
|
|
|
|
|
Была подобная проблема.
Решение нашёл здесь [URL=https://ru.stackoverflow.com/questions/1168662/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%A1%D1%82%D1%80%D0%BE%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E%D1%82-%D0%BD%D0%B5%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%BE]https://ru.stackoverflow.com/questions/1168662/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%A1%D1%82%D1%...[/URL] Если вкратце, то Битрикс не работает с версиями php выше 7.2 |
|
|
|
|
|
Была следующая проблема:
Коробка Б24, внутри неё у пользователей настроен доступ к персональным почтовым ящикам через раздел "Почта". -Письма от портала (Уведомления и Проверка системы) ходят нормально, цепляются настройки из [B]/home/bitrix/.msmtprc[/B] -Письма от имени персональных ящиков пользователей (из CRM или из раздела Почта) не отправляются, т.к. подключаемся к SMTP через настройки из .msmtprc, а отправителем ставим адрес пользователя, соответственно яндекс ругается "not owned by authorized user". Спасибо всем, отписавшимся выше, и отдельно А.Долганину. Благодаря вам пришёл к следующему решению: В [B]init.php[/B] прописываем следующий код: [CODE]function custom_mail($to, $subject, $message, $additional_headers='', $additional_parameters=''){ global $DB; if (preg_match('/^From:.*?(?<email>[^<>@\n ]+@[^<>@\n ]+)/mi', $additional_headers, $matches)) { $fr om = $matches['email']; // выбор соответствующих адресу отправителя параметров $query = 'SEL ECT box.`NAME`, box.`LOGIN`, box.`PASSWORD`, box.`EMAIL` FR OM b_mail_mailbox as box WH ERE box.`EMAIL`="' . $from . '"'; $res = $DB->Query($query); if ($arMail = $res->Fetch()) { \Bitrix\Main\Loader::includeModule('mail'); $password = CMailUtil::Decrypt($arMail['PASSWORD']); $additional_parameters .= ' --auth=login --from="' . $arMail['EMAIL'] . '" --user="' . $arMail['NAME'] . '" --passwordeval="echo ' . $password . '"'; } } if ($additional_parameters!='') { $result = @mail($to, $subject, $message, $additional_headers, $additional_parameters); } else { $result = @mail($to, $subject, $message, $additional_headers); } return $result; }[/CODE] Здесь мы выцепляем регуляркой значение заголовка From, находим в таблице b_mail_mailbox эту учётку и подставляем её данные в параметры командной строки для msmtp. Костыль работает, но есть некоторые особенности: -в файле .msmtprc пароль для учётки тоже должен быть задан через passwordeval (не через password), иначе он не подменяется и msmtp пытается авторизоваться под учёткой из командной строки с паролем из файла настроек -это будет корректно работать только если у всех пользователей и у портала один и тот же smtp-сервер, в моём случае это яндекс. Если у пользователей почты на разных серверах, то метод надо совершенствовать, например добавить в .msmtprc учётки других сервисов, в запросе джойнить таблицу b_mail_mailservices, определять из неё сервис и в параметры командной строки добавлять выбор нужной учётки. |
|
|
|
|
Мне помогло следующее:
Или наоборот, из настроек Push&Pull в json-файл. Короче, коды эти должны совпадать. |
|||
|
|
|
|
[QUOTE]Антон Кисляков написал:
в моем случае помогло следующее: cat /etc/push-server/push-server-sub-8010.json находим параметр "key" и его значение записываем в настройки модуля push&pull[/QUOTE] Апплодирую стоя! Третий раз уже с определённой периодичностью возвращаюсь в эту ветку. |
|
|
|
|
|
Андрей Николаев, спасибо за наводку, коллега, но Вам тоже следует подучить регулярки :)
Предложенная Вами регулярка сработает всегда если в строке содержится 8 цифр подряд, даже если до или после них есть другие символы. Например:[CODE]$arData = [ '12345678qwerty', '123456789', '12345678', 'asdf87654321', '', '1234567', ]; foreach( $arData as $data ) { if ( preg_match('/(\d{8}|^$)/', $data ) ) { echo "'{$data}' соответствует шаблону\r\n"; } else { echo "'{$data}' невалиден\r\n"; } } [/CODE]Результат:[CODE]'12345678qwerty' соответствует шаблону '123456789' соответствует шаблону '12345678' соответствует шаблону 'asdf87654321' соответствует шаблону '' соответствует шаблону '1234567' невалиден[/CODE]Чтобы регулярка срабатывала исключительно когда строка пустая или содержит только 8 цифр:[CODE]/(^\d{8}$|^$)/[/CODE] |
|
|
|
|