Django - 使用Base64和UTF-8解码MIME头

时间:2012-11-02 16:08:30

标签: django utf-8 base64 mime

我正在创建一个用于阅读IMAP帐户的Web电子邮件界面。我在解码某个电子邮件标题时遇到问题。

我获得了以下From标题(事件电子邮件中的具体示例):

('"=?UTF-8?B?QmVubnkgQmVuYXNzaQ==?=" <NOREPLY@NOREPLY.LOCKNLOADEVENTS.COM>', None)

我将第一部分分开:

=?UTF-8?B?QmVubnkgQmVuYXNzaQ==?=

根据一些研究,它显然是Base64编码的UTF-8标题。

我尝试使用Base64解码器对其进行解码:

# Separate sender name from email itself
first_part = header_text[1:header_text.index('" <')]
print "First part:", first_part

import base64
decoded_first_part = base64.urlsafe_b64decode(first_part)
print decoded_first_part

但我获得了

TypeError: Incorrect padding.

有人能帮我弄清楚出了什么问题吗?

谢谢

1 个答案:

答案 0 :(得分:1)

>>> import base64
>>> base64.decodestring('QmVubnkgQmVuYXNzaQ==')
'Benny Benassi'

但你可能想用a proper IMAP library来做这些事情。