С помощью набора правил можно создать собственные условия обработки поступающей почты. Можно настроить автоматическое удаление нежелательных входящих писем, сохранение писем в определенной папке, или, например, автоответчик.
Чтобы задать правило, зайдите в веб-интерфейс почты и нажмите на кнопку "Фильтрация" в левом меню. В появившемся окне, под надписью "Добавить правило сортировки" введите имя нового правила и нажмите кнопку "Добавить правило".
Нажав на ссылку "Изменить" около названия созданного правила, Вы переходите на страницу, где определяется алгоритм работы этого правила. В его основе лежит следующая логическая цепочка:
ЕСЛИ "Значение" "Параметра" УДОВЛЕТВОРЯЕТ "Условию", ТО ВЫПОЛНИТЬ "Действие" с указанными "Аргументами". В качестве
"Параметра" могут выступать перечисленные ниже поля:
- From
- Sender
- Return-path
- To
- Cc
- Any To or Cc
- Each To or Cc
- Reply-to
- 'From' Name
- Subject
- Message-Id
- Message Size
- Human Generated
- Header Field
- Any Recipient
- Each Recipient
Среди перечисленных полей последние два обрабатываются особым образом. К остальным же применяется схема "Параметр" "Условие" "Значение", где "Условие" может быть установлено как "is" и "is not", либо "in" и "not in", а "Значение" представляет собой строку с текстом, в которой может использоваться символ замены - звездочка "*".
Важно:
- Если текст в эту строку не вписан, то будет проверяться присутствие либо отсутствие указанного "Параметра" среди заголовков обрабатываемого письма.
- При указании условия "is" или "is not" будет производиться поиск введенного Вами в "Значении" текста в "Параметре".
- Если Вы, допустим, настраиваете правило на фильтрацию отдельных слов (например, в теме письма) и хотите создать правило сразу на несколько таких слов, то укажите их в "Значении" через запятую и используйте "Условия" "in" и "not in".
- К полю "Message Size" применимы "Условия" "less than" и "greater than" с указанием соответствующего размера письма (например 100K) в качестве "Значения".
Чем отличаются "параметры" "From","Sender" и "'From' Name":
- При использовании "From", значение сравнивается с адресом в поле From: входящего письма (например, условие "From is *@*somedomain.ru" будет выполняться для любого письма из домена somedomain.ru).
- При использовании "Sender" анализируется заголовок Sender в пришедшем письме (данное значение параметра применяется, например, если письмо прошло через транзитный ящик и качестве значения фильтра нужно указать e-mail транзитного ящика).
- При использовании "'From' Name" анализируется имя в поле From: входящего письма (например, условие "'From' Name is *Vasya*" будет выполняться для писем, поле From: которых выглядит подобно From: vasiliy@somecompany.ru (Vasya V.) или From: "Vasya V." vv@somecompany.ru или From: Super Vasya ).
'Any To or Cc' обозначает, что действие будет выполняться при совпадении условия хотя бы для одного из перечисленных в полях To: и Сс: адресатов.
'Each To or Cc' обозначает, что действие будет выполняться при совпадении условия для всех перечисленных в полях To: и Сс: адресатов.
Поле "Human Generated" не требует указания "Условия" и "Значения", т.к. в этом случае производится проверка письма на предмет отсутствия в его заголовках строк Precedence: bulk, Precedence: junk, Precedence: list, X-List*, X-Mirror*, X-Auto*, X-Mailing-List и наличия в письме непустого заголовка Return-path. Таким образом устанавливается, создано ли письмо человеком-отправителем или это автоматическая рассылка.
'Header Field' осуществляет проверку указанного Вами заголовка письма. Например, 'Header Field' is 'X-Mailer: MyMailer*" проверит наличие заголовка X-Mailer со значением, начинающимся с MyMailer.
Отдельно следует упомянуть поля "Any Recipient" и "Each Recipient". С их помощью можно сравнить адрес, передаваемый удаленным SMTP-сервером локальному серверу в команде RCPT TO, с заданным Вами. Так как проверка адреса происходит до какого-либо его преобразования, то таким образом можно, например, выделять сообщения, посланнные на alias (синоним). Если при отправке сообщения использовался ESMTP-параметр ORCPT, то сравнение будет производиться с переданным таким образом адресом.
Например:
где-либо отправляется сообщение на адрес user1@domain1.com;
сервер домена domain1.com принимает сообщение и согласно правилу, описанному в .forward, пытается отправить его на адрес user2@domain2.com;
почтовый сервер в домене domain2.com принимает сообщение;
почтовый сервер обнаруживает, что имя user2 является alias'ом (синонимом) аккаунта user3 и пересылает сообщение в ящик этого пользователя.
Если в данном примере почтовый сервер домена domain1.com использовал параметр ORCPT и тем самым проинформировал сервер домена domain2.com об "оригинальном" адресе получателя (user1@domain1.com), то в "Условиях" "Any Recipient" и "Each Recipient" сравнение будет производиться с адресом . В противном случае сравнение будет производиться с адресом . Для "Any Recipient" условие будет считаться выполненнным при совпадении указанных Вами "Значений" хотя бы с одним из переданных в RCPT TO адресов, для "Each Recipient" - при совпадении со всеми адресами.
В качестве "Действия" могут выступать следующие поля:
- Store in
- Redirect to
- Forward to
- Mirror to
- Reply with
- Reply to All with
- React with
- Mark
- Add header
- Reject with
- Discard
- Stop processing
Важно: при выполнении "Действий": "Store in", "Redirect to", "Forward to", "Reply with", "Reply to All with", "React with" и "Execute",
не выполняется удаление исходного письма. Если Вы хотите его удалить, то добавьте в правило "Действие" Discard.
Store in - сообщение будет скопировано в указанный в поле "Аргументы" почтовый ящик. Указанный почтовый ящик должен существовать. При указании названия ящика в виде ~имя_пользователя/название_ящика, письмо будет копироваться в указанный почтовый ящик указанного пользователя, но только в том случае, если у Вас на это есть соответствующие права.
Redirect to - перенаправляет сообщение на указанный в поле "Аргументы" почтовый адрес. Если адресов несколько, то они должны быть разделены запятыми.
Forward to - также перенаправляет сообщение на указанный в поле "Аргументы" почтовый адрес. При этом в качестве отправителя будете указаны Вы. Если адресов несколько, то они должны быть разделены запятыми.
Mirror to - также перенаправляет сообщение на указанный в поле "Аргументы" адрес, но при этом, в отличие от "Redirect to", заголовки письма практически не меняются. Изменения касаются лишь удаления полей Return-Receipt-to: и Errors-to: если таковые содержатся в сообщении, и добавлению заголовка X-Mirrored-by:
Reply with - формирует ответ на сообщение и отправляет его на указанный в поле Reply-to или, в случае его отсутствия, указанный в поле From адрес. В качестве темы сообщения подставляется строка "Re: оригинальная_тема".
Reply to All with - действует аналогично предыдущей опции, но рассылает сообщения на все перечисленные в полях To: и Cc: адреса.
React with - отсылает сообщение, определенное в поле "Аргументы". Текст должен содержать строки заголовков (To:, Cc:, Subject: и т.д.), затем пустую строку и собственно текст письма. В тексте сообщения можно использовать, специальные символы, о которых говорится ниже, в объяснении "Аргументов". Знак + в начале заголовков ставить не нужно. В качестве отправителя будете указаны Вы.
Mark - устанавливает либо сбрасывает определенный в поле "Аргументы" набор флагов для данного сообщения. Допустимы следующие значения: Read, Unread, Flagged, Unflagged, Answered, Unanswered. Может быть перечислено несколько значений, разделенных запятыми.
Add headers - добавляет в письмо определенные в полях "Аргументы" заголовки. Заголовки записываются в формате "Название: текст_заголовка".
Reject with - останавливает выполнение данного правила и всех других правил с более низким приоритетом для данного сообщения. Данное действие должно быть указано последним в текущем правиле. Обрабатываемое сообщение будет отвергнуто и отправителю будет отослано сообщение об ошибке доставки. В случае, если строка "Аргументов" содержит какой-либо текст, он будет использован в отправляемом сообщении. Вы можете сохранить текст отвергаемого письма, используя "Действие" "Store in" до "Действия" "Reject".
Discard - также останавливает выполнение данного правила и всех других правил с более низким приоритетом для данного сообщения. Данное действие должно быть указано последним в текущем правиле. Обрабатываемое сообщение будет отвергнуто, но отправителю будет отослано сообщение об успешной доставке, если такое подтверждение было запрошено.
Stop processing - останавливает выполнение данного правила и всех других правил с более низким приоритетом для данного сообщения. Данное действие должно быть указано последним в текущем правиле. Cообщение будет сохранено в папке "Входящие".
Важно: регистр символов в условиях не важен; действия текущего правила выполняются при выполнении всех заданных в нем условий и в заданной Вами последовательности.
Важно: если для правил с одинаковым приоритетом условия для текущего письма выполняются, то их обработка будет происходить в той последовательности, в которой они отображаются на странице со списком правил обработки. Естественно, процесс можно прервать раньше, выдав в каком-либо правиле Discard или Stop Processing.
И немного об
"Аргументах". В качестве "Аргументов" задается текст сообщения, в котором можно использовать следующие специальные символы:
- ^S - тема исходного письма
- ^F - поле From исходного письма
- ^T - поле Date исходного письма
- ^I - поле Message-ID исходного письма
В случае, если указываемый в поле "Аргументы" текст начинается со знака "+", то следующие за этим знаком строки будут подставляться в заголовок формируемого письма. Текстом будут считаться строки, отделенные от такого заголовка пустой строкой. При использовании такой подстановки заголовков Вам будет необходимо самостоятельно задать заголовок Subject, т.к. он не будет сформирован автоматически. Пример:
+Subject: subj
X-Field2: 2
Text ...