Вопрос

Я использую цепочку GetMail + MailDrop + Mutt + MSMTP с сообщениями, хранящимися в MailDir. Очень большой почтовый ящик беспокоит меня, поэтому я хотел организовать почту по дату:

Maildir
|-2010.11->all messages with "Date: *, * Nov 2010 *"
|-2010.12->same as above...
|-2011.01
`-2011.02

Я много гуглил и читал о языке почтовых файлов, но мне все же трудно написать такой фильтр. Архив списка рассылки Maildrop почти ничего не имеет в этом (насколько я отсканировал). Есть несколько полуоткрыта на https://unix.stackexchange.com/questions/3092/organize-email-by-date-using-procmail-or-maildrop, но мне это не нравится, потому что я хочу использовать «Дата»: «Заголовок, и я хочу сортировать по месяцу, например,« Год. Мон »в цифрах. Любая помощь, мысли, ссылки, материалы будут оценены.

Это было полезно?

Решение

Используя в основном man Страницы, я придумал следующее решение для использования на Ubuntu 10.04. Создать mailfilter Файл вызван, например, mailfilter-archive со следующим контентом:

DEFAULT="$HOME/mail-archive"
MAILDIR="$DEFAULT"

# Uncomment the following to get logging output
#logfile $HOME/tmp/maildrop-archive.log

# Create maildir folder if it does not exist
`[ -d $DEFAULT ] || maildirmake $DEFAULT`

if (/^date:\s+(.+)$/)
{
    datefile=`date -d "$MATCH1" +%Y-%m`
    to $DEFAULT/$datefile
}

# In case the message is missing a date header, send it to a default mail file
to $DEFAULT/inbox

Это использует date командовать, взяв date Содержание заголовка как вход (при условии, что он находится в RFC-2822 Формат) и создание форматированной даты для использования в качестве имени файла почты.

Затем выполните следующее в существующих файлах почты для архивирования ваших сообщений:

cat mail1 mail2 mail3 mail4 | reformail -s maildrop mailfilter-archive

Если mail-archive содержимое выглядит хорошо, вы можете удалить mail1, mail2, mail3, mail4, и т. д. почтовые файлы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top