Как удалить почтовые сообщения на сервере sendmail? - PullRequest
0 голосов
/ 03 марта 2012

Я искал ответ на этот вопрос последние 2 часа. У меня есть сервер sendmail с одним почтовым ящиком, в котором находится более 13 000 сообщений электронной почты. Сегодня пользователь открыл Outlook, и он начал загружать все эти сообщения, хотя большинство из них уже были загружены Outlook ранее, что дублирует все 13 000. К счастью, она закрыла Outlook на отметке 1000 скачиваний. У пользователя в Outlook установлено «Удалить с сервера через 20 дней».

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

Я был бы очень признателен за любую помощь или указание мне в правильном направлении.

Спасибо!

1 Ответ

0 голосов
/ 26 сентября 2014

Обычная конфигурация заключается в том, что sendmail отправляет почту пользователю в / var / spool / mail / [username]. Этот файл - просто все сообщения для пользователя, соединенные вместе. (Каждое сообщение начинается со строки, которая начинается с «От».)

Я думаю, что вы можете сказать наверняка, посмотрев на /etc/sendmail.cf. Ищите строку, начинающуюся с "Mlocal". Это описывает, как местная электронная почта должна быть доставлена. Часть строки «P =» сообщает, какая программа работает. Я думаю, что CentOS в настоящее время указывает / usr / bin / procmail, и если у пользователя нет файла ~ / .procmail, он делает то, что я описал выше.

Вы можете просто переместить файл / var / spool / mail в другой каталог в разделе / ​​- это безопасно, поскольку mv в файловой системе является атомарным на уровне ядра. Затем вы можете редактировать файл, как вы хотите. Немного сложнее вернуть отредактированный файл, потому что вы можете сделать это в тот же момент, когда sendmail доставляет другое сообщение. Самый безопасный способ - остановить sendmail, затем объединить сообщения, которые вы хотите сохранить, в / var / spool / mail / [user], или, если он не существует, просто переместить его обратно. Затем перезапустите sendmail.

...