我如何只打印消息而不打印整个文本
这是我用Python写的代码,用来读取电子邮件:
import imaplib
mailserver=imaplib.IMAP4_SSL('imap.gmail.com',993)
user = 'm****l@gmail.com'
passs = 'm****s'
mailserver.login(user,passs)
status, count = mailserver.select('Inbox')
status, data = mailserver.fetch(count[0],'(UID BODY[TEXT])')
print(data)
mailserver.close()
mailserver.logout()
这段代码会打印出邮件的整个HTML部分。请问我怎么才能只打印出邮件的内容呢?
2 个回答
0
import imaplib
mailserver=imaplib.IMAP4_SSL('imap.gmail.com',993)
user = 'm****l@gmail.com'
passs = 'm****s'
mailserver.login(user,passs)
status, count = mailserver.select('Inbox')
status, data = mailserver.fetch(count[0],'(RFC822)')
print(data)
# Something like this
import email
msg = email.message_from_string(data[0][1])
print(msg['Subject'], msg['Body'])
mailserver.close()
mailserver.logout()
如果你感兴趣的话,我在一个小笔记里发了个自我提醒。
0
这个问题和如何用Python获取邮件内容的问题是重复的(还有很多类似的问题)。简单来说,你需要查看MIME树,找出哪些部分对你来说是有用的。使用像[1]这样的通用偏移量是不行的。