В вашем .muttrc
добавьте следующую строку:
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\""
Это изменит Date:
заголовок в сообщении (только для отображения) на ваш местный часовой пояс, если заголовок содержал действительную дату в формате RFC. Если предоставленный формат даты был неправильным (мы имеем дело с ненадежным пользовательским вводом в конце концов), он будет сохранен. Для борьбы с возможной попыткой ввести код оболочки через заголовок sed
шаблон реализует белый список на основе RFC 5322 (этот RFC определяет формат Date:
поля).
Обратите внимание, что mutt
длина командной строки не должна превышать 255 символов, поэтому я оптимизировал исходную sed
команду с более строгим белым списком, чтобы он умещался в 255 байтов. Если вы планируете делать с сообщением другие вещи, то полная sed
команда, которую вы можете поместить в скрипт:
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
файл. Благодарность!