我取得使用Python和imaplib从IMAP电子邮件。在这个特定的情况下,我对To:地址有问题。不能解码编码 - Python和imaplib
我提取编码:栏,分隔地址,然后尝试每个进行解码。我对这个特定的字符串有问题。我使用Python的decode_header函数来解码Quoted-Printable/Base64编码。我开始与编码:
'=?utf-8?b?vmfzy28gugf0csoty2lv?= <[email protected]>'
它应该是Vasco Patrício <[email protected]>
(我的名字和电子邮件)。正如预期的那样,decode_header返回一组经编码的子串和它们的编码的,这导致这个阵列的2元组中:
[('\xbeg\xf3\xcbo \xba\x07\xf4r\xca-\xcbio', 'utf-8'), ('<[email protected]>', None)]
然而,当我尝试使用这个非常简单的代码的第一个元组来解码:
for part in decoded_parts:
if part[1]:
part_text = part[0].decode(part[1])
else:
part_text = part[0]
我获得的UnicodeDecodeError:
UnicodeDecodeError at /api/refresh/emails/
'utf8' codec can't decode byte 0xbe in position 0: invalid start byte
我可以证实,试图通过在同一个例外控制台结果进行解码。
decode_header是否应该将有效的可解码字符串与其编码一起返回?
谢谢
我明白了。事实上,由于字符串检测,我降低了案例,例如,对于“To:”头,例如,它可以是:','TO:'或任何置换。所以我是低调的,以缓解搜索。我从来没有想过它会打破编码 - 我从来没有想到我自己。感谢您的宝贵意见! –