gpt4 book ai didi

python - 从电子邮件中提取文本后,空格替换为 =20

转载 作者:行者123 更新时间:2023-12-01 06:24:10 24 4
gpt4 key购买 nike

我尝试使用 python 中的电子邮件和 imaplib 模块获取收到的 gmail 的文本。用utf-8解码并得到消息的payload后,所有空格仍然被=20替换。我可以使用另一个解码步骤来解决这个问题吗?

代码如下:(我从 youtube 教程中获得它 - https://youtu.be/Jt8LizzxkPU )

``

import email
import imaplib



username = "abc"
password = "123"

mail = imaplib.IMAP4_SSL("imap.gmail.com")
mail.login(username,password)

mail.select("inbox")

result, data = mail.uid("search", None,"ALL")

inbox_item_list = data[0].split()

for item in inbox_item_list:
#most_recent = inbox_item_list[-1]
#oldest = inbox_item_list[0]

result2, email_data = mail.uid('fetch',item,'(RFC822)')

raw_email = email_data[0][1].decode("utf-8")

email_message = email.message_from_string(raw_email)

to_ = email_message['To']
from_ = email_message['From']
subject_ = email_message['Subject']

counter = 1
for part in email_message.walk():
if part.get_content_maintype() == "multipart":
continue
filename = part.get_filename()
if not filename:
ext = ".html"
filename = "msg-part-%08d%s" %(counter, ext)
counter += 1

#save file
content_type = part.get_content_type()
print(subject_)
print (content_type)
if "plain" in content_type:
print(part.get_payload())
elif "html" in content_type:
print("do some beautiful soup")
else:
print(content_type)

``

最佳答案

尝试导入 quopri,然后当您获取电子邮件正文的内容(或内部包含 =20s 的任何文本)时,您可以使用 quopri.decodestring()

我是这样做的

quopri.decodestring(part.get_payload())

但请记住,这是如果您非常特别想要从 quoted-printable 进行解码。通常我会说@jfs的答案更简洁。

关于python - 从电子邮件中提取文本后,空格替换为 =20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60240054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com