Pergunta

Estou usando a cadeia getmail + maildrop + mutt + msmtp com mensagens armazenadas no Maildir.Uma caixa de entrada muito grande me incomoda, então eu queria organizar os e-mails por data assim:

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

Pesquisei muito no Google e li sobre a linguagem do filtro de e-mail, mas ainda é difícil para mim escrever esse filtro.Os arquivos da lista de discussão do Maildrop não têm quase nada sobre isso (até onde eu examinei).Existe alguma semi-solução em https://unix.stackexchange.com / questions / 3092 / organize-email-by-date-using-procmail-or-maildrop , mas eu não gosto, porque eu quero usar o cabeçalho "Date:" e quero classificarpor mês, como "ANO.MÊS" em dígitos. Qualquer ajuda, pensamentos, links, materiais serão apreciados.

Foi útil?

Solução

Usando principalmente páginas man, eu vim com a seguinte solução para uso no Ubuntu 10.04.Crie um arquivo mailfilter chamado, por exemplo, mailfilter-archive com o seguinte conteúdo:

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

Isso usa o comando date, tomando o conteúdo do cabeçalho date como entrada (assumindo que esteja em RFC-Formato 2822 ) e produzindo uma data formatada para usar como nome do arquivo de e-mail.

Em seguida, execute o seguinte nos arquivos de e-mail existentes para arquivar suas mensagens:

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

Se o conteúdo do mail-archive parecer bom, você pode remover os arquivos de correio mail1, mail2, mail3, mail4, etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top