gpt4 book ai didi

python - 如何使用 Python IMAP 从 Gmail 邮件中删除 "from nobody"和 "Content type"?

转载 作者:行者123 更新时间:2023-11-30 22:01:51 25 4
gpt4 key购买 nike

虽然我在从很多网站进行大量搜索后完成了大部分工作,但我仍然无法获得我想要的正确输出。

代码:

import imaplib

import smtplib

import email

mail=imaplib.IMAP4_SSL("imap.gmail.com")

mail.login("**************@gmail.com","********")

mail.select('inbox')

type,data=mail.search(None,'ALL')

mail_ids=data[0]

id_list=mail_ids.split()

for i in range(int(id_list[-1]),int(id_list[0])-1,-1):

typ,data=mail.fetch(i,'(RFC822)')
for response_part in data :
if isinstance(response_part,tuple):
msg=email.message_from_string(response_part[1])
email_from=msg['from']
email_subj=msg['subject']
c=msg.get_payload(0)
print email_from
print "subj:",email_subj
print c

输出:

Bharath Joshi <bharathjoshi99@gmail.com> subj: hehe From nobody Tue
Dec 25 15:48:52 2018 Content-Type: text/plain; charset="UTF-8"

hello444444444

Bharath Joshi <bharathjoshi99@gmail.com> subj: From nobody Tue Dec 25
15:48:52 2018 Content-Type: text/plain; charset="UTF-8"

33333

Bharath Joshi <bharathjoshi00@gmail.com> subj: From nobody Tue Dec 25
15:48:53 2018 Content-Type: text/plain; charset="UTF-8"

hello--22

困扰我的是我得到的额外的东西,即

“无人......”和“内容类型......”

如何删除这些内容?

最佳答案

啊,电子邮件的“美丽”......显然您面对的是多部分电子邮件,对于这些,get_payload() 方法也输出 header 。您需要像这样使用 msg.walk() :

for response_part in data :
if isinstance(response_part,tuple):
msg=email.message_from_string(response_part[1])
print "subj:", msg['subject']
print "from:", msg['from']
print "body:"
for part in msg.walk():
if part.get_content_type() == 'text/plain':
print part.get_payload()

要获得更完整的答案,请查看 this stackoverflow answer

关于python - 如何使用 Python IMAP 从 Gmail 邮件中删除 "from nobody"和 "Content type"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921475/

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