Email
提取郵件標頭並解碼 MIME 編碼字
作為腳本的一部分,我想獲取一個包含電子郵件的文件並提取標題,例如主題標題。以下幾乎可以工作:
formail -c -x subject < FILE
但它不解碼使用 MIME 編碼字語法(又名 RFC2047)編碼的標頭,例如
=?UTF-8?B?w6lsw6ltZW50?=
.在處理 MIME 編碼字部分解碼的同時提取電子郵件標題的好方法是什麼?
相關問題:https ://stackoverflow.com/questions/39457380/retrieve-email-subject-from-file-via-bash
管道它:
蟒蛇_
formail -c -x Subject < FILE | \ python -c "from email.header import decode_header; import sys; text, encoding = decode_header(sys.stdin.read())[0]; print text.decode(encoding)"
php )
formail -c -x Subject < FILE | \ php -r 'echo iconv_mime_decode(stream_get_contents(STDIN),1,"utf-8");'
或者,如果您確定標題將是,
=?UTF-8?B?…
那麼您可以輕鬆地做到:formail -c -x Subject < FILE | \ awk -F '[?]' '{print $4}' | \ openssl enc -base64 -d -A
python 應該是最通用的,因為它可能預設存在於所有系統中,甚至存在電子郵件模組。