这是我阅读电子邮件的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部分。我如何只打印出邮件本身?
答案 0 :(得分: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()
如果你很好奇,我会在一个要点中发布一个自我提醒。
答案 1 :(得分:0)
这是How can I get an email message's text content using python?的重复(在众多其他人中)。简而言之,您必须查看MIME树并找出哪些部分对您有意义。使用像[1]这样的反转偏移将不工作。