Em sistemas mbox
convencionais, a primeira mensagem em /var/mail/you
é - por definição - não lida e a mais antiga disponível.
formail -zxSubject: -1 -s </var/mail/you
Para extrair a mensagem para um arquivo (para que você possa encaminhar convenientemente apenas essa mensagem) e extrair o cabeçalho Subject:
, tente algo como
tmp=$(maketemp -t findoldestunread.XXXXXXXX) || exit 127
trap 'rm -f $tmp' EXIT # remove temp file when done
trap 'exit 1' 1 2 3 5 15 # remove also in case of error / interruption
formail -1 -s </var/mail/you >"$tmp"
formail -zxSubject: <"$tmp"
sendmail -oi [email protected] <"$tmp"
No Maildir, a situação é um pouco mais complexa. Novas mensagens são temporariamente armazenadas em tmp
e depois movidas para cur
. O nome do arquivo indica sinalizadores; em tantas palavras , procure um nome de arquivo que contenha uma vírgula perto do final, em que S
não está entre os caracteres após a vírgula.
find path/to/Maildir/cur -maxdepth 1 -type f \
-regex '.*,[^S,]*$' -printf '%C@ %p\n' |
sort | sed '1s/^[^ ]* //;q' | xargs formail -zxSubject:
O especificador de formato printf
imprime o registro de data e hora primeiro para facilitar a classificação. Classificamos, pegamos a primeira linha, cortamos o registro de data e hora e o alimentamos para formail
para extrair o cabeçalho Subject:
. (Isso obviamente irá quebrar se você tiver nomes de arquivos com novas linhas ou algo assim; há maneiras de contornar isso, mas eu sou preguiçoso e prático aqui.)
Refatorar apenas para imprimir o nome do arquivo deve ser trivial neste caso - basta remover o canal para xargs
e capturar a saída em uma variável.
Algumas implementações do Maildir também terão um índice de algum tipo que pode tornar essa tarefa muito mais fácil e rápida do que percorrer toda a caixa de correio no sistema de arquivos, mas novamente, sem mais conhecimento sobre qual implementação você está usando, uma nota especulativa neste momento.
Se a sua caixa de correio não estiver em nenhum desses dois formatos (você é estranho e), será necessário atualizar sua pergunta com mais detalhes.
Sua referência a mail
implica que você provavelmente está usando um sistema tradicional de Berkeley mbox
, mas existem muitas versões, algumas das quais são um pouco esotéricas.