小编Han*_*ser的帖子

Python - 电子邮件头解码UTF-8

是否有任何Python模块有助于解码各种形式的编码邮件标题,主要是主题,简单 - 比如说 - UTF-8字符串?

以下是我拥有的邮件文件的示例主题标题:

Subject: [ 201105311136 ]=?UTF-8?B?IMKnIDE2NSBBYnM=?=. 1 AO;
Subject: [ 201105161048 ] GewSt:=?UTF-8?B?IFdlZ2ZhbGwgZGVyIFZvcmzDpHVmaWdrZWl0?=
Subject: [ 201105191633 ]
  =?UTF-8?B?IERyZWltb25hdHNmcmlzdCBmw7xyIFZlcnBmbGVndW5nc21laHJhdWZ3ZW5kdW4=?=
  =?UTF-8?B?Z2VuIGVpbmVzIFNlZW1hbm5z?=
Run Code Online (Sandbox Code Playgroud)

文本 - 编码的刺痛 - 文本

文本 - 编码的字符串

text - 编码的字符串 - 编码的字符串

Encodig也可能是ISO 8859-15之类的东西.

更新1:我忘了提,我试过了email.header.decode_header

    for item in message.items():
    if item[0] == 'Subject':
            sub = email.header.decode_header(item[1])
            logging.debug( 'Subject is %s' %  sub )
Run Code Online (Sandbox Code Playgroud)

这输出

DEBUG:root:Subject是[('[201101251025] ELStAM; =?UTF-8?B?IFZlcmbDvGd1bmcgdm9tIDIx?=.Januar 2011',无)]

这没有什么帮助.

更新2:感谢Ingmar Hupp的评论.

第一个示例解码为两个tupels的列表:

print decode_header("""[201105161048] GewSt:=?UTF-8?B?IFdlZ2ZhbGwgZGVyIFZvcmzDpHVmaWdrZWl0?=""")
[('[201105161048] GewSt:',None),('Wegfall der Vorl\xc3\xa4ufigkeit', 'UTF-8')]

这总是[(字符串,编码),(字符串,编码),...]所以我需要一个循环将所有[0]项连接到一个字符串或如何在一个字符串中得到它?

主题:[201101251025] ELStAM; =?UTF-8?B?IFZlcmbDvGd1bmcgdm9tIDIx?=.Januar 2011

解码不好: …

python email email-headers

34
推荐指数
5
解决办法
3万
查看次数

标签 统计

email ×1

email-headers ×1

python ×1