我使用Python的Imaplib从Gmail帐户中获取邮件...但是我收到了一封令人困惑的文字主体的电子邮件:

> RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
> OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
> ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg

谁可以帮助我从我的电子邮件中读取此文件...

谢谢

LO

有帮助吗?

解决方案

看起来像base64。在Python中,您可以使用 base64.b64decode 或者 str.decode('base64').

message = '''
RGF0ZSBldCBoZXVyZTogICAgICAgICAgICAgICAgICAgICAgICAgICAyMi8wOC8yMDEwIDE0
OjMzOjAzIEdNVCBVbmtub3duDQpQcsOpbm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgamFjaW50bw0KTm9tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXJ2YWxobw0KRS1NYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
'''

print message.decode('base64')

结果:

Date et heure:                           22/08/2010 14:33:03 GMT Unknown
Prénom:                                   jacinto
Nom:                                     carvalho
E-Mail:

é 看起来这是不正确的。看来文本是在UTF-8中编码的,因此您还需要解码UTF-8编码:

print message.decode('base64').decode('utf-8')

结果:

...
Prénom:
...

要注意的另一件事是,基本64编码的不同变体在它们用于值62和63的两个符号中有所不同。 base64.b64decode 如果默认值不适合您,则可以指定这两个字符。

其他提示

马克主要是正确的,但也是UTF-8编码的,如 \uc3a9 在“prénom”中。

(而且我试图弄清楚为什么我要获得适当的解码,而标记不适合相同的代码,但这是另一个问题。)

它是64 UTF-8。这个特定的文字说:

Date et heure:                           22/08/2010 14:33:03 GMT Unknown
Prénom:                                   jacinto
Nom:                                     carvalho
E-Mail:                                
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top