Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
расширенная.настройка:почта:контроль [2018/08/23 15:31]
a.korobka создано
расширенная.настройка:почта:контроль [2018/08/23 17:30] (текущий)
Строка 1: Строка 1:
 ====== Контроль данных ====== ====== Контроль данных ======
-Ввиду того, что при работе с почтой могут быть представлены не действующие адреса почты или действительные адреса могут быть удалены,​ в связи с чем перестанут действовать,​ создан справочник "​Черный список адресов" ​+Ввиду того, что при работе с почтой могут быть представлены не действующие адреса почты или действительные адреса могут быть удалены,​ в связи с чем перестанут действовать,​ создан справочник "​Черный список адресов"​
 + 
 +В связи с тем, что есть необходимость производить действия автоматически,​  
 +была изменено структура БД - добавлена таблица и дополнительные управляемые структуры (триггеры,​ обозначены ниже). 
 <​spoiler|таблица USER$MAIL_BLOCK>​ <​spoiler|таблица USER$MAIL_BLOCK>​
 <code sql> <code sql>
Строка 27: Строка 31:
  
 ====Триггера ==== ====Триггера ====
 +<​spoiler|Триггер на таблице рассылок>​
 +<code sql>
 +create or alter trigger USER$MAIL_LOG_MAILBLOCK for MAIL_LOG
 +active after update position 99
 +as
 +BEGIN
 +  if (exists(select * from repl$getgrpid g join filials f on f.grpid=g.repl$grpid where f.ismain=1)
 +      and new.errortext = '​N/​A'​) then
 +  begin
 +    -- вставка адреса в блок
 +    insert into user$mail_block(mailpart,​ typeblock, modifydate)
 +    select m.mailaddress,​ 1, current_timestamp from mail_log m
 +      left join user$mail_block b on upper(b.mailpart)=upper(m.mailaddress)
 +     where m.mailid = new.mailid and b.mailpart is null;
 +    -- обновление остальных записей
 +    update mail_log m set m.mailstatus = coalesce(m.mailstatus,​ 10), m.errortext = '​N/​A'​
 +     where cast(m.createdate as date) >= cast(new.createdate as date)
 +       and upper(m.mailaddress) = upper(new.mailaddress) and m.mailid!=new.mailid and m.errortext!='​N/​A';​
 +  end
 +END
 +</​code>​
 +</​spoiler>​
 +
 <​spoiler|Триггер на черном списке>​ <​spoiler|Триггер на черном списке>​
 <code sql> <code sql>

расширенная.настройка/почта/контроль.1535027497.txt.gz · Последние изменения: 2018/08/23 15:31 (внешнее изменение)