Creatio development guide
PDF
Разработка в bpm'online на примерах

Пользовательская фильтрация нежелательных обращений

Glossary Item Box

Общие сведения

Bpm'online предоставляет возможность настроить фильтр нежелательных обращений. Пользователи имеют возможность фиксировать список email адресов и доменов, письма из которых могут автоматически помечаться как спам. При этом обращения по ним могут либо не регистрироваться, либо регистрироваться в отмененном состоянии (статус указывается в системной настройке [Состояние нежелательных обращений по умолчанию]).

Также фильтр нежелательных обращений позволяет анализировать заголовок письма на предмет наличия в нем определенных флагов, например Auto-Submitted. При наличии таких флагов фильтр позволяет не создавать обращения или создавать обращения в состоянии, указанном в системной настройке.

Для того чтобы анализировать электронный адрес, домен или часть адреса, достаточно просто добавить необходимое значение в справочник [Черный список email адресов и доменов для регистрации обращений]. После добавления значения (тип будет установлен автоматически), во время анализа входящего письма адреса будут помечены как входящие в черный список.

Алгоритм добавления нового свойства для фильтрации писем

Анализ заголовка письма происходит с использованием справочника [Управление свойствами заголовков email]. Для того чтобы добавить новое свойство для анализа, необходимо выполнить следующие шаги:

  1. Добавить новый класс, реализующий интерфейс IHeaderPropertyHandler. Этот интерфейс содержит в себе единственный метод Check(), возвращающий значение типа bool. В реализации метода Check() необходимо выполнить проверку значения свойства и вернуть результат. Если метод возвращает true, обращение будет создано по стандартному механизму, если false — результат проверки отрицательный и письмо будет обработано как письмо из черного списка.
  2. Добавить значение в справочник [Управление свойствами заголовков email]. В колонке Name указать имя свойства, анализ которого должен проводиться при регистрации. В колонке handler должно содержаться имя класса, который был добавлен в предыдущем пункте.

Пример добавления нового свойства для фильтрации писем

Описание кейса

Добавить для анализа обращения новое свойство No-reply. В случае, если данное свойство присутствует в заголовке письма и его значение отлично от "No", обращение обработать, как обращение из черного списка.

Алгоритм реализации кейса

1. Добавление нового класса, реализующего интерфейс IHeaderPropertyHandler

В пользовательском пакете (например, Custom) необходимо добавить новую схему типа "Исходный код". В этой схеме необходимо определить класс, реализующий интерфейс IHeaderPropertyHandler, например:

namespace Terrasoft.Configuration
{
    using System;
    public class NoreplyHandler: IHeaderPropertyHandler
    {
        public bool Check(object value) {
            return string.Equals(value.ToString(), "No", StringComparison.OrdinalIgnoreCase);
        }
    }
}

После сохранения созданную схему небходимо опубликовать.

Интерфейс IHeaderPropertyHandler определен в пакете JunkFilter, поэтому он обязательно должен быть добавлен в зависимости пользовательского пакета.

2. Добавление значения в справочник

Для корректной работы нового фильтра необходимо добавить в справочник [Управление свойствами заголовков email] новое свойство No-reply. В качестве класса обработчика (свойство handler) необходимо указать созданный на предыдущем шаге класс NoreplyHandler.

В результате выполнения перечисленных действий, после получении входящего письма, содержащего в своем заголовке флаг No-reply со значением, отличным от "No", возможны следующие варианты:

  • обращение не будет создано в случае, если значение системной настройки [Создавать обращения по нежелательным письмам] равно false;
  • обращение будет создано со статусом, указанным в системной настройке [Состояние нежелательных обращений по умолчанию], если значение системной настройки [Создавать обращения по нежелательным письмам] равно true.

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?