У вашому .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
файл. Дякую!