我正在构建一个系统,使用Python的imaplib
和email
模块从一个Gmail帐户中读取电子邮件并获取主题。有时,从hotmail帐户接收到的电子邮件标题中会有换行符,例如:
In [4]: message['From']
Out[4]: '=?utf-8?B?aXNhYmVsIG1hcsOtYSB0b2Npbm8gZ2FyY8OtYQ==?=\r\n\t<isatocino22@hotmail.com>'
如果我尝试解码该标头,它什么也不做:
In [5]: email.header.decode_header(message['From'])
Out[5]: [('=?utf-8?B?aXNhYmVsIG1hcsOtYSB0b2Npbm8gZ2FyY8OtYQ==?=\r\n\t<isatocino22@hotmail.com>', None)]
然而,如果我用空格替换换行和制表符,它就可以正常工作:
In [6]: email.header.decode_header(message['From'].replace('\r\n\t', ' '))
Out[6]: [('isabel mar\xc3\xada tocino garc\xc3\xada', 'utf-8'), ('<isatocino22@hotmail.com>', None)]
这是decode_header
的一个bug吗?如果不是,我想知道还有哪些类似的特殊情况需要注意。