Py3 imaplib:只获得电子邮件的直接正文(无回复)

时间:2017-08-15 02:56:35

标签: python python-3.x email imaplib

我正在使用python3和imaplib从收件箱中检索电子邮件,到目前为止一切顺利。但这些电子邮件是回复链的一部分,我获得的部分有效负载包括我回复的消息以及原始电子邮件内容。有没有办法只获取原始内容(例如,如果您在gmail的Web客户端中查看电子邮件,则在单击...查看其上下文之前,是电子邮件的一部分)?

import email
import imaplib

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login("xxx@gmail.com", "xxx")
mail.select('inbox')
result, data = mail.search(None, "UNSEEN") # (ALL/UNSEEN)

i = len(data[0].split())
if i > 1:
    print("More than one unread email! Using last one.")
if i == 0:
    print("No unread emails. Will check again soon.")
else:
    result, msg = mail.fetch(data[0].split()[i-1], "(RFC822)")
    msg = email.message_from_bytes(msg[0][1])
    #if msg.is_multipart():
    #   for payload in msg.get_payload():
    #       print(payload.get_payload())
    maintype = msg.get_content_maintype()
    if maintype == "multipart":
        for part in msg.get_payload():
            if part.get_content_maintype() == "text":
                print(part.get_payload())
    elif maintype == "text":
        print(part.get_payload())

这就是我得到的:

Again reply!

On Mon, Aug 14, 2017 at 6:34 PM, <xxx@gmail.com> wrote:

> Test message
>

<div dir=3D"ltr">Again reply!</div><div class=3D"gmail_extra"><br><div clas=
s=3D"gmail_quote">On Mon, Aug 14, 2017 at 6:34 PM,  <span dir=3D"ltr">&lt;<=
a href=3D"mailto:xxx@gmail.com" target=3D"_blank">xxx@gmail.com=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Test message<br>
</blockquote></div><br></div>

0 个答案:

没有答案