Email

提取郵件標頭並解碼 MIME 編碼字

  • January 28, 2020

作為腳本的一部分,我想獲取一個包含電子郵件的文件並提取標題,例如主題標題。以下幾乎可以工作:

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 應該是最通用的,因為它可能預設存在於所有系統中,甚至存在電子郵件模組。

引用自:https://unix.stackexchange.com/questions/553765