Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 当我通过base64解码器运行Gmail电子邮件时,它只解码邮件头_Python 3.x_Gmail_Gmail Api_Email - Fatal编程技术网

Python 3.x 当我通过base64解码器运行Gmail电子邮件时,它只解码邮件头

Python 3.x 当我通过base64解码器运行Gmail电子邮件时,它只解码邮件头,python-3.x,gmail,gmail-api,email,Python 3.x,Gmail,Gmail Api,Email,我正试图破解Gmail的一条信息。我正在使用gmail api中的默认get_message()函数。看起来我正在解码电子邮件的标题,但即使我通过Base64解码器运行文本,电子邮件的正文仍然未解码返回。如果您能帮助正确解码邮件正文,我们将不胜感激!下面是我正在使用的函数,以及打印函数返回的内容: def get_message(service, user_id, msg_id): try: message = service.users().messages().get

我正试图破解Gmail的一条信息。我正在使用gmail api中的默认get_message()函数。看起来我正在解码电子邮件的标题,但即使我通过Base64解码器运行文本,电子邮件的正文仍然未解码返回。如果您能帮助正确解码邮件正文,我们将不胜感激!下面是我正在使用的函数,以及打印函数返回的内容:

def get_message(service, user_id, msg_id):
    try:
        message = service.users().messages().get(userId=user_id, id=msg_id, format='raw').execute()
        msg_raw = base64.urlsafe_b64decode(message['raw'].encode('ASCII'))
        msg_str = email.message_from_bytes(msg_raw)
        content_types = msg_str.get_content_maintype()
        print(msg_str)
这是我打印msg_str时得到的部分信息:

MIME-Version: 1.0
From: xxxxxxxx@xxxx.com
To: xxxxxxx@gmail.com
Reply-To: no-reply@xxxxxxx.com
Date: Mon, 15 Jun 2020 18:04:52 +0000 (UTC)
Subject: Your subject line here
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64
X-RCIS-Action: ALLOW
Message-ID: <gYVgv8UEScaE_tbOkDveNw@ismtpd0034p1las1.sendgrid.net>
X-SG-EID: Ap3vdjbPGAKcTGFw7Eo1svjoaFy5XYEjNVu77BufzmUAjCf6aYR+XSXjw7ibAUowXCb0UJhsslBkBD
 Ruoukd4gvMabp3XWN/UbzDiqaAoGCz/WCNdNf9x3D9APOKeFYrZrE8wSn7a0pyYGkWPxBrrKKrkODD
 L3t5+l5uf7hSLqOnT1Zo3YDJeczbtM7SGu//TGl3QRvFFmVAiKXmVN62sA==
X-Feedback-ID: 8340127:zoIy9G3JApamNWAibxpVx2fbkPkU9DYqDP9JHIkh0jc=:zoIy9G3JApamNWAibxpVx2fbkPkU9DYqDP9JHIkh0jc=:SG

PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy93M2MvL2R0ZCB4aHRtbCAxLjAgdHJhbnNpdGlvbmFs
Ly9lbiIgImh0dHA6Ly93d3cudzMub3JnL3RyL3hodG1sMS9kdGQveGh0bWwxLXRyYW5zaXRpb25h
bC5kdGQiPjxodG1sIHN0eWxlPSJtYXJnaW46IDA7cGFkZGluZzogMDtmb250LWZhbWlseTogJ0hl
bHZldGljYSBOZXVlJywgJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7
Ym94LXNpemluZzogYm9yZGVyLWJveCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiPjxoZWFkIHN0eWxlPSJtYXJnaW46IDA7cGFkZGluZzogMDtmb250LWZhbWlseTogJ0hlbHZl
dGljYSBOZXVlJywgJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7Ym94
MIME版本:1.0
发件人:xxxxxxxx@xxxx.com
致:xxxxxxx@gmail.com
答复:没有-reply@xxxxxxx.com
日期:2020年6月15日星期一18:04:52+0000(UTC)
主题:这里是你的主题行
内容类型:text/html;字符集=utf-8
内容传输编码:base64
X-RCIS-动作:允许
消息ID:
X-SG-EID:AP3VDJBPGAKCTGFW7EO1SVJOAFY5XYJNVU77BUFZMUAJCF6AYR+XSXJW7IBAUOWXCB0UJHSLBKBD
Ruoukd4gvMabp3XWN/UbzDiqaAoGCz/WCNDNF9X3D9POKEFYRZRE8WSN7A0PYGKWPBRRKKRKODD
L3t5+l5uf7hSLqOnT1Zo3YDJeczbtM7SGu//TGl3QRvFFmVAiKXmVN62sA==
X-Feedback-ID:8340127:zoIy9G3JApamNWAibxpVx2fbkPkU9DYqDP9JHIkh0jc=:zoIy9G3JApamNWAibxpVx2fbkPkU9DYqDP9JHIkh0jc=:SG
PCFET0NUWVbFigh0BWWGufvcTeldictily93M2MVL2R0ZCB4AHRTBCAXLJAGDHJHBNNPDGLVBMFS
Ly9lbiIgImh0dHA6Ly93d3cudzMub3JnL3RyL3hodG1sMS9kdGQveGh0bWwxLXRyYW5zaXRpb25h
BC5KDGQIPJXODG1SIHN0EWXLPSJTYXJNAW46IDA7CGFKZGLUZZOGMDT250LWZHBWLSETOGJ0HL
BHZLDGLJYSBOZVLJYWGJ0HLBHZLDGLJYSCSIEHLBHZLDGLJYSWGQXJPYWWSIHNHBNMTC2VYAWY7
Ym94LXNpemluZzogYm9yZGVyLWJveCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
BWWIPJXOZWFKIHN0EWXLPSJTYXJNAW46IDA7CGFKZGLUZOGMDMB250LWZHBWLSETOGJ0HLBHZL
DGLJYSBOZVLJYWGJ0HLBHZLDGLJYSCSIEHLBHZLDGLJYSWGQXJPYWWSIHNHBNMTC2VYAWY7YM94

您正在抓取API返回的消息的
raw
字段。此字段是编码为Base64的完整消息字节(您已经在解码)

如果您查看已解码原始电子邮件的标题,您会注意到:

Content-Transfer-Encoding: base64
指示邮件正文也是Base64编码的,这意味着您无论如何都必须解码电子邮件正文。否则,您可能需要深入查看
消息['payload']
对象以查看是否有任何内容


理想情况下,您可以查看程序中的
内容传输编码
,以了解如何处理消息体。您可能会考虑阅读更多有关电子邮件中指定邮件正文的信息。

谢谢您提供的信息。当我使用get_payload()时,我会得到以字节为单位的电子邮件正文。然后,我可以通过base64解码器运行它,返回html,但html仍然是字节,我无法解码,因为其中有大量的“\n”和其他字符。@lzypguin是否使用正确的字符集进行解码?我看到您使用ASCII做了一些事情,但是标题指示UTF-8。