使用gmail API访问电子邮件正文中的链接



我正在使用gmailapi和python访问我的gmail收件箱。我的电子邮件存储在mime_msg中。我想访问'http://example.com/newpasswordid=exampleid12345',如下所示。我该怎么做?

msg_str = base64.urlsafe_b64decode(full_message['raw'].encode('ASCII'))
mime_msg = email.message_from_bytes(msg_str)
print(mime_msg)
<a href =3D 'http://example.com/newpasswordid=exampleid12345'>Link1</a><br><br>.</td></tr>
<tr><td><i>=A92020 For more info please visit=
<a href=3D" https://example2.com/">Link2</a=></i></td></tr>

如果字符串mime_msg中有该文本,并且您只想提取URL,这非常简单。如果你知道你的格式总是这样,以至于你想要第一对单引号中的内容,你可以使用以下代码:

import re
mime_msg = """
<a href =3D 'http://example.com/newpasswordid=exampleid12345'>Link1</a><br><br>.</td></tr>
<tr><td><i>=A92020 For more info please visit=
<a href=3D" https://example2.com/">Link2</a=></i></td></tr>
"""
exp = re.compile(r"'(.*?)'")
mime_msg = re.sub(r"[nr]+", '', mime_msg)
m = exp.search(mime_msg)
print(m.group(1))

结果:

http://example.com/newpasswordid=exampleid12345

如果您希望能够处理更复杂的邮件正文,可以使正则表达式更加复杂。

最新更新