No seu, .muttrc
adicione a seguinte linha:
set display_filter="exec sed -r \"s/^Date:\\s*(([F-Wa-u]{3},\\s*)?[[:digit:]]{1,2}\\s+[A-Sa-y]{3}\\s+[[:digit:]]{4}\\s+[[:digit:]]{1,2}:[[:digit:]]{1,2}(:[[:digit:]]{1,2})?\\s+[+-][[:digit:]]{4})/date +'Date: %a, %d %b %Y %H:%M:%S %z' -d '\\1'/e\""
Isso mudará o Date:
cabeçalho da mensagem (apenas para exibição) para o fuso horário local se o cabeçalho contiver uma data formatada por RFC válida. Se o formato da data fornecido estiver incorreto (afinal, estamos lidando com entradas não confiáveis do usuário), ele será preservado. Para combater uma possível tentativa de injetar o código do shell no cabeçalho, o sed
padrão implementa uma lista de permissões baseada no RFC 5322 (este RFC define o formato do Date:
campo).
Observe que o mutt
limite da linha de comando não deve ter mais do que 255 caracteres; portanto, otimizei o sed
comando original que tinha uma lista de permissões mais rígida para caber em 255 bytes. Se você planeja fazer outras coisas com a mensagem, o sed
comando completo que você pode colocar em um script é:
sed -r "s/^Date:\s*(((Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s*)?[[:digit:]]{1,2}\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[[:digit:]]{4}\s+[[:digit:]]{1,2}:[[:digit:]]{1,2}(:[[:digit:]]{1,2})?\s+[+-][[:digit:]]{4})/date +'Date: %a, %d %b %Y %H:%M:%S %z' -d '\1'/e"
filter.sed
arquivo. Obrigado!