Найти в Дзене
Лайфхаки по жизни

Гайд по работе и настройке sieve для фильтрации писем

Введение Sieve — это мощный и гибкий язык сценариев для фильтрации электронной почты на сервере. Его основная задача — обрабатывать входящие сообщения на почтовом сервере, сортировать их по папкам, отклонять, пересылать и выполнять другие действия, прежде чем они попадут в почтовый ящик пользователя. Преимущества использования Sieve: - Фильтрация писем происходит на сервере, а не на клиентском устройстве. - Простота в написании правил, нет необходимости в программировании. - Поддерживается многими популярными почтовыми серверами (Postfix, Dovecot, Cyrus и др.). Для работы с Sieve необходим почтовый сервер, поддерживающий его, например, Dovecot. Рассмотрим установку и настройку Sieve на базе Postfix + Dovecot на Ubuntu. sudo apt update sudo apt install dovecot-core dovecot-imapd dovecot-sieve dovecot-managesieved Откройте файл конфигурации Dovecot: sudo nano /etc/dovecot/conf.d/20-lmtp.conf Добавьте или отредактируйте следующие строки: protocol lmtp { mail_plugins = $mail_plugins
Оглавление

Фильтрация писем с использованием Sieve: настройка и примеры

Введение

Sieve — это мощный и гибкий язык сценариев для фильтрации электронной почты на сервере. Его основная задача — обрабатывать входящие сообщения на почтовом сервере, сортировать их по папкам, отклонять, пересылать и выполнять другие действия, прежде чем они попадут в почтовый ящик пользователя.

Преимущества использования Sieve:

- Фильтрация писем происходит на сервере, а не на клиентском устройстве.

- Простота в написании правил, нет необходимости в программировании.

- Поддерживается многими популярными почтовыми серверами (Postfix, Dovecot, Cyrus и др.).

Установка и настройка Sieve

Для работы с Sieve необходим почтовый сервер, поддерживающий его, например, Dovecot. Рассмотрим установку и настройку Sieve на базе Postfix + Dovecot на Ubuntu.

1. Установка необходимых пакетов

sudo apt update

sudo apt install dovecot-core dovecot-imapd dovecot-sieve dovecot-managesieved

2. Настройка Dovecot

Откройте файл конфигурации Dovecot:

sudo nano /etc/dovecot/conf.d/20-lmtp.conf

Добавьте или отредактируйте следующие строки:

protocol lmtp {

mail_plugins = $mail_plugins sieve

}

3. Включение ManageSieve

ManageSieve позволяет управлять сценариями Sieve через почтовый клиент, поддерживающий это расширение.

Отредактируйте файл 20-managesieve.conf:

sudo nano /etc/dovecot/conf.d/20-managesieve.conf

Убедитесь, что настройки выглядят следующим образом:

service managesieve-login {

inet_listener sieve {

port = 4190

}

}

protocol sieve {

sieve = ~/.dovecot.sieve

sieve_dir = ~/sieve

}

4. Перезапуск Dovecot

После внесения изменений перезапустите Dovecot:

sudo systemctl restart dovecot

Создание сценариев Sieve

Теперь, когда сервер настроен, можно создавать правила для фильтрации почты.

Пример 1: Сортировка писем по папкам

Создайте файл ~/sieve/filter.sieve:

require ["fileinto"];

if header :contains "Subject" "Работа" {

fileinto "Работа";

}

elsif header :contains "From" "newsletter@example.com" {

fileinto "Рассылки";

}

else {

fileinto "INBOX";

}

Этот скрипт сортирует письма:

- Если тема содержит слово "Работа" — перемещает в папку Работа.

- Если письмо от newsletter@example.com — перемещает в папку Рассылки.

- Все остальные письма остаются в папке INBOX.

Пример 2: Автоматический ответ

Создайте файл ~/sieve/autoreply.sieve:

require ["vacation"];

vacation :days 7 :subject "Автоответчик" text:

Спасибо за ваше письмо. Я сейчас в отпуске и отвечу на ваше сообщение по возвращению.

.

;

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

Пример 3: Отклонение писем с определенного адреса

require ["reject"];

if address :is "from" "spammer@example.com" {

reject "Ваше письмо было отклонено.";

}

Этот скрипт отклоняет письма, пришедшие с адреса spammer@example.com.

Проверка и активация Sieve-скриптов

После написания сценариев их нужно проверить и активировать:

1. Установите sieve в качестве активного скрипта:

sievec ~/sieve/filter.sieve

ln -s ~/sieve/filter.sieve ~/.dovecot.sieve

2. Проверьте корректность сценария:

sieve-test -e ~/sieve/filter.sieve < тестовое_письмо.eml

Заключение

Использование Sieve значительно упрощает фильтрацию почты на сервере и позволяет автоматизировать множество рутинных задач. С его помощью можно настроить сортировку, переадресацию, автоответы и защиту от спама.

Теперь, когда вы познакомились с основами, вы можете настроить Sieve для ваших нужд и улучшить управление почтовым трафиком.

Полезные ссылки

- Документация Dovecot по Sieve: https://doc.dovecot.org/configuration_manual/sieve/

- RFC 5228 — Спецификация Sieve: https://tools.ietf.org/html/rfc5228