【问题标题】:How do I only print out the message instead of the whole text [duplicate]我如何只打印出消息而不是整个文本[重复]
【发布时间】:2014-06-20 12:24:18
【问题描述】:

这是我阅读电子邮件的 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 部分。如何只打印消息本身?

【问题讨论】:

标签: python imap mail-server


【解决方案1】:
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() 

如果你好奇的话,我在 gist 中发布了一个自我提醒。

https://gist.github.com/jmunsch/11374042

【讨论】:

【解决方案2】:

这是How can I get an email message's text content using python? 的副本(在很多其他中)。简而言之,您必须查看 MIME 树并找出其中哪些部分对您来说是有趣的。使用像 [1] 这样的通用偏移将起作用。

【讨论】:

    猜你喜欢
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多