Q: Какие
существуют правила обработки и что они
значат ?
A: Набор правил определяет
каким образом будет обрабатываться поступающая в адрес пользователя почта (также
на странице можно задать текст
автоматического ответа на сообщения).
Если Вы уже задали какие-либо правила, то
сможете их увидеть. Будет сообщен
приоритет правила, его название, а также
предоставлены возможности изменения приоритета, названия, самого правила (по
ссылке "Edit") и дана возможность
удаления правила. Что касается автоматического ответа на сообщения, то
он является встроенным правилом для каждого пользователя и выполняется том
случае когда данная опция разрешена, а
исходное письмо не является сгенерированным почтовым роботом или
сервисом. Задав имя нового правила и
подтвердив его нажатием кнопки "Создать",
либо перейдя к редактированию
существующего правила по ссылке "Edit",
Вы попадете на страницу, определяющую
алгоритм работы данного правила. Вы
можете определить к примеру следующую
логическую цепочку: Если "Значение"
"Параметра" удовлетворяет "Условию",
то выполнить "Действие" с
указанными "Аргументами". В
качестве "Параметра" могут
выступать перечисленные ниже поля:
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 в пришедшем письме; при
использовании "'From' Name"
анализируется имя в поле From: входящего
письма (пример: условие "'From' Name is *Vasya*"
будет выполняться для писем, поле From:
которых выглядит подобно следующим
конструкциям - From: vasiliy@somecompany.ru (Vasya V.) или
From: "Vasya V." vv@somecompany.ru или From: Super Vasya <svas@somecompany.ru>
).
'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;
- сервер CommuniGate в домене domain2.com
принимает сообщение;
- сервер CommuniGate обнаруживает что им
user2 является alias'ом (синонимом)
аккаунта user3 и пересылает сообщение в
ящик этого пользователя.
Если в данном примере
почтовый сервер домена domain1.com
использовал параметр ORCPT и тем самым
проинформировал сервер домена domain2.com
об "оригинальном" адресе
получателя (user1@domain1.com), то в "Условиях"
"Any Recipient" и "Each Recipient"
сравнение будет производиться с
адресом <user1@domain1.com>. В противном
случае сравнение будет производиться с адресом <user2@domain2.com>. Для "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:
оригинальная_тема". В качестве "Аргументов"
задается текст сообщения, в котором
можно использовать следующие
специальные символы:
- ^S - тема исходного письма
- ^F - поле From исходного письма
- ^T - поле Date исходного письма
- ^I - поле Message-ID исходного письма
В случае если
указываемый в поле "Аргументы"
текст начинается со знака "+", то
следующие за этим знаком строки будут
подставляться в заголовок
формируемого письма. Текстом будут
считаться строки, отделенные от
такого заголовка пустой строкой. При
использовании такой подстановки
заголовков Вам будет необходимо
самостоятельно задать заголовок Subject,
т.к. он не будет сформирован
автоматически. Пример:
+Subject: subj
X-Field2: 2
Text ...
Reply
to All with - действует аналогично
предыдущей опции, но рассылает
сообщения на все перечисленные в
полях To: и Cc: адреса.
React
with - отсылает сообщение,
определенное в поле "Аргументы".
Текст должен содержать строки
заголовков (To:, Cc:, Subject: и т.д.), затем
пустую строку и собственно текст
письма. В тексте сообщения можно
использовать следующие специальные
символы:
- ^S - тема исходного письма
- ^F - поле From исходного письма
- ^T - поле Date исходного письма
- ^I - поле Message-ID исходного письма Важно:
знак + в начале заголовков ставить не
нужно. Отправителем письма будет
считаться текущий пользователь.
Mark
- Устанавливает либо сбрасывает
определенный в поле "Аргументы"
набор флагов для данного сообщения.
Допустимы следующие значения: Read, Unread,
Flagged, Unflagged, Answered, Unanswered. Может быть
перечислено несколько значений,
разделенных запятыми.
Add
headers - добавляет в письмо
определенные в полях "Аргументы"
заголовки. Заголовки записываются в
формате "Название: текст_заголовка".
Reject
with - останавливает выполнение
данного правила и всех других правил с
более низким приоритетом для данного
сообщения. Данное действие должно
быть указано последним в текущем
правиле. Обрабатываемое сообщение
будет отвергнуто и отправителю будет
отослано сообщение об ошибке доставки.
В случае если строка "Аргументов"
содержит какой-либо текст, он будет
использован в отправляемом сообщении.
Вы можете сохранить текст
отвергаемого письма, используя "Действие"
"Store in" до "Reject".
Discard
- также останавливает выполнение
данного правила и всех других правил с
более низким приоритетом для данного
сообщения. Данное действие должно
быть указано последним в текущем
правиле. Обрабатываемое сообщение
будет отвергнуто, но отправителю
будет отослано сообщение об успешной
доставке, если такое подтверждение
было запрошено.
Stop
processing - останавливает
выполнение данного правила и всех
других правил с более низким
приоритетом для данного сообщения.
Данное действие должно быть указано
последним в текущем правиле. Сообщение
будет сохранено в ящике INBOX.
Важно:
регистр символов в условиях не важен;
действия текущего правила
выполняются при выполнении всех
заданных в нем условий и в заданной
Вами последовательности.
Важно: если
для правил с одинаковым приоритетом
условия для текущего письма
выполняются, то их обработка будет
происходить в той последовательности,
в которой они отображаются на
странице со списком правил обработки.
Естественно, процесс можно прервать
раньше, выдав в каком-либо правиле Discard
или Stop Processing.