Перейти к содержимому


При попытке отправить шаблон -


Сообщений в теме: 19

#1 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 29 Ноябрь 2016 - 10:44

Добрый день.

Помогите разобраться, что за ошибка и что её вызывает.
Имеется такое элементарное вычисление,

if ($line['Статус платежа'] == "В процессе") {
       
// заполняем поле
        $line
['Время оплаты'] = date("Y-m-d H:i:s");
       
// шлём оповещение  - На оплату
        send_template
(270, "id=$ID");
} elseif ($line['Статус платежа'] == "Оплачено") {
       
// заполняем поле
        $line
['Время оплаты'] = date("Y-m-d H:i:s");
       
// шлём оповещение  - Оплачено
        send_template
(240, "id=$ID");
       
// меняем Статус заявки в таблице Платежи
        $data
= Array();
        $data
['f4660'] = 'В работе';
        data_update
(280, EVENTS_ENABLE, $data, "`id`= ",$line['ID Заказа']);
} elseif ($line['Статус платежа'] == "Не проведён") {
       
// заполняем поле
        $line
['Время оплаты'] = date("Y-m-d H:i:s");
       
// шлём оповещение - платёж не проведён
        send_template
(250, "id=$ID");
}

...запускаемое по событию: изменение поля Статус платежа. Поле Статус платежа, в свою очередь переключается внешним вычислением - добавлением записи с EVENTS_ENABLE

Всё работает, только не отправляются шаблоны. Вернее отправляются, но от пользователя Система (см. ниже) с вываливанием в ошибку: No access to template


					
					<br />
					<p class= Сообщение отредактировал z0ddak: 29 Ноябрь 2016 - 11:13


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 29 Ноябрь 2016 - 13:15

Попробуйте

send_template(270, "id=$ID", 0, 0, 1);

В этом случае рассылка пойдет от имени первого пользователя (администратора).

#3 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 29 Ноябрь 2016 - 13:36

Вы правы, отправилось от имени пользователя, но не помогло, к сожалению. Всё такая же ошибка No access to template


					
					<br />
					<p class= Сообщение отредактировал z0ddak: 29 Ноябрь 2016 - 14:07


#4 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 29 Ноябрь 2016 - 17:18

никто не сталкивался с такой проблемой?..

#5 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 30 Ноябрь 2016 - 16:22

Я так и не добился отправки...
Выяснилось ещё следующее - отправка работает только под учетной записью из КБ,
отправка же с внешнего обработчика так же вызывает No access to template

раньше слал почту с внешнего обработчика таким вычислением

        /******** Найдем нужную запись по email ************/
        $record_id
= 0; // Инициализируем переменную
       
//Выборка из базы
        $sqlQuery
= "SELECT `id`,`f3721`,`f3850`,`f3860`,`f1470`,`f3870` FROM `" . DATA_TABLE . "42` WHERE `f442`='" . $vote_email . "' AND `status`=0 LIMIT 1";
        $result
= sql_query($sqlQuery) or user_error(mysql_error() . "<br>" . $sqlQuery . "<br>", E_USER_ERROR);
       
while ($row = sql_fetch_assoc($result)) {
               
// Присваиваем значения переменным из массива части значений строки
                $record_id
= $row['id'];
                $smarty_name
= $row['f3721'];
                $smarty_patronymic
= $row['f3850'];
                $smarty_sponsname
= $row['f3860'];
                $smarty_login
= $row['f1470'];
                $smarty_password
= $row['f3870'];
               
// Передаём значения Smarty в шаблон письма
                $smarty
->assign("smarty_name", $smarty_name);
                $smarty
->assign("smarty_patronymic", $smarty_patronymic);
                $smarty
->assign("smarty_sponsname", $smarty_sponsname);
                $smarty
->assign("smarty_login", $smarty_login);
                $smarty
->assign("smarty_password", $smarty_password);
               
// Отправляем шаблон письма
                send_template
(190, "`id`=" . $record_id);
               
// Создаём массив части значений строки
                $data
= Array();
                $data
['f4080'] = $record_id;
                $data
['f4090'] = 'Напоминание пароля';
                $data
['f4100'] = 'На Ваш e-mail отправлены учётные данные';
               
// Добавляем в таблицу новую запись значениями из массива
                data_insert
(280, EVENTS_ENABLE, $data);
       
}
        echo
'DONE'; // Возвращаем сайту сообщение, что все в порядке
       
if ($record_id == 0) {
                echo
'Нет такого E-mail в базе';
               
exit;
       
}

Сообщение отредактировал z0ddak: 30 Ноябрь 2016 - 16:25


#6 AntonKravchenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 02 Декабрь 2016 - 11:47

аналогичная проблема. Мало того, что "No access to template", так ещё и генерирует по 50-200 страниц (!) этих уведомлений. Заявка в ТП, пока в работе у них

#7 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 02 Декабрь 2016 - 15:50

Просмотр сообщенияAntonKravchenko (02 Декабрь 2016 - 11:47) писал:

аналогичная проблема. Мало того, что "No access to template", так ещё и генерирует по 50-200 страниц (!) этих уведомлений. Заявка в ТП, пока в работе у них

Антон, вы как нибудь по другому решили этот вопрос или надеетесь всё таки получить ответ в "скором времени" от горе-разработчиков КБ? Одно лечат, другое калечат..
Просто проект горит, а рассылка почтовых оповещений в нём ключевой элемент. В какой уже раз "наступил на грабли", связавшись с разработкой на базе кб.

"Втюхивают" сырой продукт под эгидой борьбы с кровососущими насекомыми...

#8 AntonKravchenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 02 Декабрь 2016 - 18:35

Просмотр сообщенияz0ddak (02 Декабрь 2016 - 15:50) писал:

Антон, вы как нибудь по другому решили этот вопрос или надеетесь всё таки получить ответ в "скором времени" от горе-разработчиков КБ? Одно лечат, другое калечат..

надеюсь получить ответ, т.к. до недавних обновлений ревизии всё работало замечательно

#9 AntonKravchenko

    Активный участник

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 05 Декабрь 2016 - 17:42

ревизия от 2.12.16 исправила этот баг

#10 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 07 Декабрь 2016 - 14:11

Добрый день, есть таблица с записями и соответственно шаблон отчета в Exel по этой таблице, как можно настроить автоматическую отправку на эл.почту.
Создал поле с адресатом рассылки в таблице, настроил Крон, но рассылка по каждой строке проходит отдельно, т.е. место единого файла, приходят файлы с построчным отчетом в каждом, сколько строк столько писем...
Спасибо.

#11 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 08 Декабрь 2016 - 09:45

К сожалению пока никак, на данный момент прикрепленные шаблоны формируются по той же строке что и письмо.

#12 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 07 Февраль 2017 - 09:55

Просмотр сообщенияAntonKravchenko (05 Декабрь 2016 - 17:42) писал:

ревизия от 2.12.16 исправила этот баг

Антон, вы пишете что баг был исправлен, но обновившись до последней ревизии я обнаружил что всё те же ошибки остались...
У меня версия WEB: php 5.6 и максимум на что можно обновить ревизию - это на 17174 от 2017-01-31...



					
					<br />
					<p class= Сообщение отредактировал z0ddak: 07 Февраль 2017 - 10:06


#13 maksn

    Активный участник

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 07 Февраль 2017 - 10:46

Просмотр сообщенияz0ddak (02 Декабрь 2016 - 15:50) писал:

Просто проект горит, а рассылка почтовых оповещений в нём ключевой элемент. В какой уже раз "наступил на грабли", связавшись с разработкой на базе кб.
Ну, уж если проект горит, и "никакие корректировки прав отправляющего send_template(270, "id=$ID", 0, 0, 1) не спасают ситуацию",
забейте на send_template. Формируйте самостоятельно тело письма и отправляйте его sendmail

Сообщение отредактировал maksn: 07 Февраль 2017 - 10:47

"...Сижу, паяю. CRM починяю..."
Мои разработки

#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Февраль 2017 - 11:26

Цитата

Формируйте самостоятельно тело письма

Кстати да, можно самостоятельно формировать письмо по существующему шаблону, через функцию form_template($form, $line, 'body_form'), где $form - строка шаблона из служебной таблицы forms, $line - строка вашей таблицы, для которой формируется письмо. Затем вставляете результат в sendmail.

$form = sql_select_array(FORMS_TABLE, "id=270");
$body
= form_template($form, $line, 'body_form');


#15 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 15 Февраль 2017 - 10:19

Откорректированный полный вариант, отправка по текущей записи в вычислении:

$form = sql_select_array(FORMS_TABLE, "id=270");
$subject
= form_template($form, $line, 'subj_mail');
$body
= form_template($form, $line, 'body_form');
$to
= $line[form_int_name($form['to_mail'])];
sendmail
($subject, $body, $to);

Примечание: тут не учитывается вариант адресата из поля связи и не прикрепляются файлы.

#16 z0ddak

    Участник

  • Пользователи
  • PipPip
  • 23 сообщений
  • Пол:Мужчина
  • Город:Барнаул
  • Интересы:разработка

Отправлено 21 Февраль 2017 - 17:42

Просмотр сообщенияCbCoder (15 Февраль 2017 - 10:19) писал:

Откорректированный полный вариант, отправка по текущей записи в вычислении:

$form = sql_select_array(FORMS_TABLE, "id=270");
$subject
= form_template($form, $line, 'subj_mail');
$body
= form_template($form, $line, 'body_form');
$to
= $line[form_int_name($form['to_mail'])];
sendmail
($subject, $body, $to);

Примечание: тут не учитывается вариант адресата из поля связи и не прикрепляются файлы.

Спасибо, принял к сведению...

#17 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 22 Февраль 2017 - 15:11

такой код в кроне
$form = sql_select_array(FORMS_TABLE, "id=290");
$subject
= form_template($form, 13376, 'subj_mail');
$body
= form_template($form, 13376, 'body_form');
$to
= $line[form_int_name($form['to_mail'])];

выводит шаблон, но подставляемые поля не заполняются.
при просмотре из записи все ок.

куда копать?

выводит в смысле r_print естественно

#18 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 22 Февраль 2017 - 16:05

А вы прочли что я написал перед кодом?

Цитата

отправка по текущей записи в вычислении

Т.е. про крон там ничего нет. В кроне надо вначале получить запись из нужной таблицы и поместить ее в переменную $line. В вычислениях эта переменная уже заполнена автоматом.

#19 mak

    Активный участник

  • Активный пользователь
  • PipPipPip
  • 207 сообщений

Отправлено 22 Февраль 2017 - 16:17

все получилось

$line = data_select_array(43, "`id`=13376");
$form
= sql_select_array(FORMS_TABLE, "id=290");
$subject
= form_template($form, $line, 'subj_mail');
$body
= form_template($form, $line, 'body_form');
$to
= $line[form_int_name($form['to_mail'])];

спасибо

#20 Tony999

    Активный участник

  • Пользователи
  • PipPipPip
  • 412 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 31 Июль 2017 - 04:59

"Косяк" продолжается и в самой новой версии...
Письмо, да, по шаблону можно сделать с таким "костылем", но стандартные и удобные средства очереди рассылки, как я понимаю, будут недоступны.
Надо писать в ТП, пусть сделают.
Умные сайты на заказ
https://info.crm-master.info





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных