আপনার .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:যদি শিরোনামটিতে একটি বৈধ আরএফসি ফর্ম্যাটেড তারিখ থাকে তবে এটি বার্তাটিতে শিরোনামটিকে (কেবল প্রদর্শনের জন্য) আপনার স্থানীয় সময় অঞ্চলে পরিবর্তন করবে । যদি প্রদত্ত তারিখের ফর্ম্যাটটি ভুল ছিল (আমরা সর্বোপরি অবিশ্বস্ত ব্যবহারকারী ইনপুট নিয়ে কাজ করছি) এটি সংরক্ষণ করা হবে। শিরোনামের মাধ্যমে শেল কোড ইনজেকশনের সম্ভাব্য প্রয়াসের বিরুদ্ধে লড়াই করার জন্য sedপ্যাটার্নটি আরএফসি 5322 (এই আরএফসি 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ফাইলে এটি অন্তর্ভুক্ত করতে চাই । ধন্যবাদ!