簡體   English   中英

如何檢測和更正 python 中電子郵件標題中的 Content-Type 字符集?

[英]How to detect and correct the Content-Type charset in email header in python?

在 python 中以編程方式檢測和更正電子郵件標頭中的Content-Type charset的正確方法是什么?

我有 1000 封電子郵件被提取到.eml (基本上是純文本)文件,有些是經過編碼的shift_jis ,但是電子郵件標題中的字符集沒有提到這一點,因此它們無法在任何電子郵件程序中正確顯示。 charset手動添加到Content-Type標頭可糾正此問題。

曾是:

Content-Type: text/plain; format=flowed

需要是:

Content-Type: text/plain; charset="shift_jis"; format=flowed

在python中保留電​​子郵件正文和標題的其他部分的正確方法是什么?

另外,有沒有辦法檢測哪種編碼,並且只糾正那些具有該編碼的編碼? 我不能盲目地全部轉換,因為有些是iso_2022_jp ,而那些已經正確顯示。

使用get_charset,您可以獲得消息的預先存在的字符集。 這是一個示例:

from email import message_from_file
msg = message_from_file(open('path.eml'))
msg.get_charsets()
[None, 'gb2312', None]

使用這種方法,您可以遍歷所有消息,並使用 set_charset() 將其設置為沒有它的那些為正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM