En su .muttrc
agregar la siguiente línea:
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\""
Esto cambiará el Date:
encabezado del mensaje (sólo pantalla) a su zona horaria local si el encabezado contenía un RFC fecha válida con formato. Si el formato de fecha proporcionado era incorrecto (después de todo, estamos tratando con una entrada de usuario no confiable) se conservará. Para combatir un posible intento de inyectar el código de shell a través del encabezado, el sed
patrón implementa una lista blanca basada en RFC 5322 (este RFC define el formato del Date:
campo).
Tenga en cuenta que mutt
limita la línea de comando para que no tenga más de 255 caracteres de largo, por lo tanto, optimicé el sed
comando original que tenía una lista blanca más estricta para caber en 255 bytes. Si planea hacer otras cosas con el mensaje, entonces el sed
comando completo que puede poner en un script es:
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
archivo. ¡Gracias!