Настройка фильтров на почтовом сервере Факультета

Причины для фильтрации

Обычно пользователям требуется обработка почты на стороне сервера по следующим причинам:
  • хочется пересылать почту на другой адрес/адреса
  • хочется фильтровать почту именно на сервере, чтобы фильтрация не зависела от почтовых клиентов:
    • раскладывать по отправителям/тематике
    • фильтровать по признаку спам/не спам
Рассмотрим решение этих задач

Разница между пересылкой и забиранием почты

Для начала Вы должны решить, требуется ли пересылать или забирать почту

Электронная почта создавалась по образу и подобию бумажной:
  • Вы пишите в письме кому и от кого (и вообще говоря в поле "от кого" можно написать что угодно
  • Посылаете письмо через почтовый сервер - отдаете письмо в почтовом отделении (у вас могут и не принять письмо)
  • Письмо приходит в нужное почтовое отделение, где его пытаются доставить в почтовый ящик, что может и не получиться, если:
    • такого ящика нет - в этом случае письмо уходит по адресу отправителя с пометкой о недоставке
    • ящик переполнен (письмо не лезет) - это не столь фатально, посылается письмо о временной недоставке (в отличие от бумажной почты скопировать письмо - легко и дешево)
    • почтовое отделение было недоступно - аналогично предыдущему пункту, только ситуацию обрабатывает Ваш почтовый сервер
    • и т.д.
  • У почтового ящика может быть пометка о пересылке (в самом отделении (на сервере) или на самом ящике), в этом случае вместо доставки почты письмо пересылается по новому адресу (а там может быть тоже пересылка и т.д.)
  • пересылка электронной почты может сочетаться с сохранением почты в локальный ящик (чего нет у бумажной, т.к. физические объекты клонировать сложнее).
  • Каждый пользователь, чтобы забрать почту из ящика, должен иметь ключ (пароль) от ящика. Для доставки письма в ящик ничего иметь не нужно.
Исходя из механизма работы почты, можно сказать, что забирание почты выглядит так:
  • Вы нанимаете курьера, которому даете адрес почтового отделения и ключ от ящика
  • Время от времени курьер посещает почтовое отделение, открыв ящик - забирает всю почту (т.к. письма электронные, то может "клонировать" письма, а не забирать)
  • Если Вы меняете замок (пароль от ящика), то должны выдать курьеру новый ключ (внести в настройки новый пароль)
  • Курьер может доставлять Вам почту как домой (локальная почтовая программа, Thunderbird, например), так и на другой почтовый сервер (если это курьер этого почтового сервера)
  • Письмо из ящика попадает к Вам не сразу (у курьера есть периодичность посещения почтового отделения)
В отличие от забирания, пересылка почты:
  • не требует курьера, поэтому смена замка не влияет на пересылку почты (вы можете даже потерять ключ/заблокировать замок)
  • влияет только на новую почту (уже доставленная почта останется в ящике, в то время как курьер забирает всю почту)

Настройка фильтрации на основе Sieve

Настраиваются через новый web-интерфейс.

Хотя формально, т.к. все настройки сохраняются в виде файла, можно настраивать и через файловый доступ на сервер, но этот вариант не рекомендуется и описываться не будет.

В любом случае фильтрация будет на стороне сервера. Т.е. после настройки фильтра каким-бы клиентом Вы не читали почту, ко всей новой почте будут применяться правила фильтра! Т.е. можно настроить sieve-фильтры через новый web-интерфейс, а читать, скажем, через старый.

Рассмотрим создание правил через web-интейфейс.

Справа вверху есть меню/область с кнопкой выхода. Выберите Настройки:

Menu.png

Далее выберите Фильтры, managesieve и нажмите на знак + для добавления фильтра:

Create.png

В данном примере видно уже созданный фильтр antispam, создание которого рассмотрено ниже.

Подключение антиспама

Если факультетский антиспам считает спамом, то он пишет об этом в служебных полях и выставляет флаг X-Spam-Flag в значение YES. Поэтому выбираем условие, что письма с этим флагом надо помещать в корзину.

ALERT! Не забудьте сохранить фильтр!

webmail-antismap-small.png

В этом примере фильтр уже был ранее сохранен, поэтому есть в списке.

Пересылка почты

В данном примере настроена пересылка всей почты с адреса roman@stud... на roman@cs... Forward.png

Здесь показан момент создания фильтра, он еще не сохранен и в списке фильтров его нет.

Настройка пересылки или фильтрации через файлы на сервере

Как следует из названия, требуется файловый доступ на сервер. ALERT! Редактирование файлов требует большей ответственности, т.к. неправильные настройки могут привести к потере почты, поэтому лучше используйте настройку через webmail, рассмотренную выше.

Настройка пересылки через файл

Надо создать файл .forward со своим существующим адресом и вся почта (новая) начнет пересылаться по этому адресу.

Пример:
  • Пусть у вас есть почтовый адрес test@test.ru
  • Пусть ваш логин от почты на факультете testuser
  • создаете файл (пусть будет forward.txt) с текстом test@test.ru
  • Копируете этот файл на почтовый сервер по ssh-протоколупод именем .forward
    • unix-подобные системы: scp forward.txt testuser@mail.cs.msu.ru:.forward
    • windows системы: копируете с помощью winscp, переименовываете
  • Вот и всё!

Для более сложной логики (пересылать не все, пересылать на разные адреса в зависимости от условий) лучше использовать .procmailrc

Настройка фильтрации на основе procmail

Procmail — это программа с богатыми возможностями по обработке почты.

Для сортировки письма на основе оценки (спам/не спам), которую выставляет факультетский почтовый сервер достаточно создать файл .procmail со следующим содержанием:

DEFAULT=$HOME/Maildir/
ORGMAIL=$DEFAULT
DELIVER="/usr/local/libexec/dovecot/deliver"

:0:
* ^X-Spam-Flag: YES
| $DELIVER -m Trash

:0 w
| $DELIVER

Как видно из настройки, если письмо признано спамом (выставлен флаг X-Spam-Flag), то оно будет помещено в Корзину (которая расположена в Trash), остальные письма будут доставлены во Входящие
Topic revision: r5 - 25 Sep 2015, RomanKondakov
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback