Di .muttrctambahkan Anda baris berikut:
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\""
Ini akan mengubah Date:header dalam pesan (hanya untuk tampilan) ke zona waktu lokal Anda jika header berisi tanggal diformat RFC yang valid. Jika format tanggal yang diberikan salah (kami berhadapan dengan input pengguna yang tidak dipercaya) itu akan dipertahankan. Untuk mengatasi kemungkinan upaya untuk menyuntikkan kode shell melalui header, sedpola mengimplementasikan daftar putih berdasarkan RFC 5322 (RFC ini mendefinisikan format Date:bidang).
Catatan yang muttmembatasi baris perintah tidak lebih dari 255 karakter, maka saya mengoptimalkan sedperintah asli yang memiliki daftar putih lebih ketat untuk masuk ke 255 byte. Jika Anda berencana melakukan hal-hal lain dengan pesan tersebut, maka sedperintah lengkap yang dapat Anda masukkan ke dalam skrip adalah:
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.sedfile saya . Terima kasih!