Python下载没有页眉和页脚的HTML电子邮件

时间:2012-12-05 18:09:48

标签: python email imap html-email

是否可以在没有页眉和页脚的情况下使用Python获取电子邮件正文?我目前的代码是

import imaplib
username = "username"
password = "password"
imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
imap_server.login(username, password)
imap_server.select('INBOX')

def get_emails(email_ids):
    """
    Takes in an array of email id's as input eg: ['1','7']
    Returns an array of html strings corresponding to the given email id's"""
    data = []
    for e_id in email_ids:
        status, response = imap_server.fetch(e_id, '(UID BODY[TEXT])')
        data.append(response[0][1])
    return data

输出HTML字符串是这样的:

--0016e6d9770b63df7104cebab205 Content-Type: text/plain; charset=ISO-8859-1
This is some html code

--0016e6d9770b63df7104cebab205 Content-Type: text/html; charset=ISO-8859-1 <html>
    <body>
<p>This is some html code</p>
</body>
</html>
--0016e6d9770b63df7104cebab205--

是否可以只使用没有标题的HTML?示例:我想看看

<html>
    <body>
<p>This is some html code</p>
</body>
</html>

作为输出。谢谢!

1 个答案:

答案 0 :(得分:0)

您应该使用Python的电子邮件支持类(例如email.parser)来解析您收到的邮件,然后获取相应的MIME部分。或者,您可以使用IMAP的BODYSTRUCTURE响应,并使用它来确切地确定您要下载的电子邮件的哪一部分。