MailDrop: Filter Mail по дате: заголовок
-
27-10-2019 - |
Вопрос
Я использую цепочку 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
, и т. д. почтовые файлы.