Dovecot: есть ли способ удалить конкретное сообщение электронной почты из ВСЕХ почтовых ящиков одного домена?

Я хочу иметь возможность удалить конкретное сообщение электронной почты из всех почтовых ящиков одного домена, есть ли у Dovecot такие функции ИЛИ есть ли какое-нибудь известное хорошее решение для этого? Это формат Maildir , а домен представлен как /var/vmail/domain.tld/ .

Проблема

много одноразовых массовых рассылок, часто с многомегабайтные вложения.

Что я пробовал

Я искал команды doveadm Batch, Altmove, Expunge, ни одна из которых, похоже, не выполняет (именно такого типа) работу?

Что я хочу по возможности избегать

Последнее средство: grep рекурсивно с помощью заголовка Message-ID или ESMTP id части одного из нескольких Получено заголовки.

РЕДАКТИРОВАТЬ: Спасибо за комментарии и ответ до сих пор, читая их, я понимаю, что не смог уловить суть: это не проблема спама - эти массовые электронные письма совершенно законны, но через некоторое время совершенно ненужны, и поскольку они весят несколько МБ, проблема с хранилищем требует быть предотвращенным.

1
задан 20 October 2020 в 11:31
1 ответ

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

Во-первых, попробуйте свои фильтры с помощью команды только для чтения, например fetch, чтобы не перемещать и не удалять больше почты, чем предполагалось.:

doveadm -u victim@example.org fetch 'hdr.from hdr.subject' FROM spammer.example HEADER message-id 'badid@spammer.example'

Синтаксис поиска описан в man doveadm-search-query, но точный запрос все еще зависит от вас -что является хорошим выбором для вас?

Обратите внимание, что удаление только по идентификатору-сообщения приводит к неприятным побочным-эффектам в виде потери почты, поскольку спамеры и/или программные ошибки время от времени перерабатывают средства-в-. ]be-уникальные идентификаторы.

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

Как ограничить вашу команду одним доменом?

Если имена ваших почтовых учетных записей выглядят как joe@example.org, дайте doveadm подстановочный знак:

doveadm -u *@example.org move spamfolder FROM spammer.example HEADER unique value

Если имена ваших почтовых учетных записей менее предсказуемы, предоставьте фиксированный список:

psql -c 'COPY (SELECT mailname FROM users WHERE..) TO stdout (format csv);' > userlist_example.org
doveadm -F userlist_example.org move spamfolder FROM spammer.example HEADER unique value
3
ответ дан 19 October 2020 в 23:01

Теги

Похожие вопросы