Trong dòng của bạn .muttrc
thêm dòng sau:
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\""
Điều này sẽ thay đổi Date:
tiêu đề trong thông báo (chỉ hiển thị) thành múi giờ địa phương của bạn nếu tiêu đề chứa ngày định dạng RFC hợp lệ. Nếu định dạng ngày được cung cấp không chính xác (chúng tôi đang xử lý đầu vào của người dùng không tin cậy) thì nó sẽ được giữ nguyên. Để chống lại một nỗ lực có thể để tiêm mã shell thông qua tiêu đề, sed
mẫu thực hiện một danh sách trắng dựa trên RFC 5322 (RFC này xác định định dạng của Date:
trường).
Lưu ý rằng mutt
giới hạn dòng lệnh dài không quá 255 ký tự, do đó tôi đã tối ưu hóa sed
lệnh ban đầu có danh sách trắng chặt chẽ hơn để phù hợp với 255 byte. Nếu bạn dự định làm những việc khác với thông báo, thì sed
lệnh đầy đủ bạn có thể đặt trong một tập lệnh là:
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
tập tin của tôi . Cảm ơn!