use*_*417 2 python email imaplib python-3.x
在这里,我使用imapblib和email来根据特定条件(即发件人和主题)检索特定电子邮件。
import imaplib
import email
FROM_EMAIL = "##########@gmail.com"
FROM_PWD = "##########"
SMTP_SERVER = "imap.gmail.com"
mail = imaplib.IMAP4_SSL(SMTP_SERVER)
mail.login(FROM_EMAIL,FROM_PWD)
mail.select("INBOX")
result, data2 = mail.search(None,'(FROM "####" SUBJECT "####")')
ids = data2[0]
id_list = ids.split()
latest_email_id = id_list[-1]
result, email_data = mail.fetch(latest_email_id, "(RFC822)")
raw_email = email_data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
Run Code Online (Sandbox Code Playgroud)
在电子邮件中,在我的桌面上使用 gmail,有一个如下所示的链接(请注意,# 字符代表敏感信息):
# This is how the link is supposed to appear
https://inreach.garmin.com/textmessage/txtmsg?extId=e3e7d4c2-fab4-43ad-93de-f9dedca8280#####=##########%40gmail.com
Run Code Online (Sandbox Code Playgroud)
当打印 python 检索到的电子邮件文本时,我得到了这个错误的链接:
email_text = list(email_message.walk())[1].get_payload()
print(email_text) # Note(I am not printing the whole email for privacy reasons)
# The link as python has retrieved it appears like this:
https://inreach.garmin.com/textmessage/txtmsg?extId=3De3e7d4c2-fab4-43ad-93=de-f9dedca8280#####=3D##########%40gmail.com
Run Code Online (Sandbox Code Playgroud)
Python 以某种方式在和 之间添加一个=字符,并且还添加了几个字符。93de3D
蟒蛇在做什么?关于如何解决这个问题的想法?