LINUX.ORG.RU
ФорумAdmin

exim+dovecot Скрипт для удаления вложений

 , ,


0

2

Доброго всем дня.

Существует проблема. Есть почтовый сервер с 50ГБ памяти на диске. Увеличить невозможно, т.к. сервер (VPS) арендован, а руководство не дает денег на новый тариф (разница в 500р./мес. при увеличении памяти вдвое).
В общем, появилась идея чистить вложения в письмах (в первую очередь в отправленных), старше 2-х недель.
Эти вложения хранятся в теле письма, зашифрованы в base64. Помогите пожалуйста написать парсер, который бы брал письма, старше 14 дней, и удалял бы из них эти самые вложения.
Суть. Перед телом фложений идет список файлов, первое слово которого всегда:
filename*X* (X - номкер вложения, начиная с 0)

За этим списком идут сами закодированные вложения. Надо, чтобы скрипт парсил каждое письмо, старше 14 дней, отсчитывал последнее число (легко определить по наличию пустой строки, после последнего filename) в filename и удалял всё содержимое, которое идет ниже.

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

Ответ на: комментарий от sin_a

1. Да, можно разделять, но вот как, не совсем понятно (( 2. Нет, архивация не выход в моем случае. Эти 50ГБ заполняются почтой за месяц (((

zerropull ()
Ответ на: комментарий от zerropull

Наверно не разделять а наоборот, объединять. Вложения просто хранятся отдельно, достаточно раскомментировать параметры в этой секции и указать место типа:

mail_attachment_dir = /var/spool/mail/attachments/
Нужно использовать mdbox. Если используешь maildir то понадобится сконвертировать. Попробуй на тестовой установке. Смоделируй свою ситуацию, когда у тебя часть вложений в ящиках и ты включаешь эту опцию, как это будет выглядеть. В идеале было бы просто сконвертировать сразу всё с новыми параметрами, если позволяют условия.

Если пользователи пересылают друг другу файлы то даст эффект. И сжатие в любом случае лишним не будет.

sin_a ★★★★★ ()

Давно, лет 10 назад, делал подобное используя perl-овый Mime::Parser
Задача была перемещать вложения в отдельное хранилище. Из письма выделялись заголовок/тело и заново сформированное из них письмо без вложений заменяло оригинал. Вложения перемещались в отдельное онлайн хранилище (тогда ещё термин облако не употребляли) и в тело письма дописывались ссылки на их местоположение.

bass ★★★★★ ()
Последнее исправление: bass (всего исправлений: 1)

Вы меня простите, но какой смысл удалять только вложения оставляя тело письма? Например письмо вида «Hello Masha! данные во вложении» Ну и смысл вообще такие письма оставлять?
Далее 14 дней, узер в отпуске может быть это время, т.е. не получит то что нужно.
Вообще или руководству пофиг на почту или я чего-то не понимаю. Вам не жалко себя когда поднимут «хай» вида «у меня было в письме и оно пропало, во всем виноват админ» ?

ЗЫ Возвращаясь к началу, недавно тут была тема, но обоснованная ибо трафик по спутнику дорогой, а у вас всего хранение.

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.