使用IMAPClient在Python中读取邮件正文
我想查看一封邮件的具体内容。到目前为止,我可以看到邮件的主题或者其他一些信息,但我找不到只读取邮件正文的方法,而不带其他多余的内容。
from imapclient import IMAPClient
import email
host = 'imap.gmail.com'
user = 'myEmailAddress'
password = 'myPassword'
ssl = True
server = IMAPClient(host, use_uid=True, ssl=ssl)
server.login(user, password)
inboxInfo = server.select_folder('INBOX')
messages = server.search(['NOT DELETED'])
response = server.fetch(messages, ['RFC822', 'BODY[TEXT]'])
for msgid, data in response.iteritems():
parsedEmail = email.message_from_string(data['RFC822'])
body = email.message_from_string(data['BODY[TEXT]'])
parsedBody = parsedEmail.get_payload(0)
print parsedBody
server.logout()
然后这段代码返回了:
>From nobody Fri Jun 6 01:29:34 2014
>Content-Type: text/plain; charset=UTF-8
>
>Email body
我只想得到:
>Email body
1 个回答
-1
get_payload(i)
会返回一个 Message
对象。
你可以使用 Message.walk()
这个方法,然后检查内容类型是否是 text/plain
。
比如说:
for part in message.walk():
if part.get_content_type() == "text/plain":
do_stuff_with_text_parts(part)