ใน.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
ไฟล์ของฉัน ขอบคุณ!