Python - 阅读电子邮件?

时间:2016-10-31 13:15:21

标签: python string email

我有以下代码:

import poplib
mailServer = 'pop.gmail.com'
emailID = 'example@gmail.com'
emailPass = 'pw'

myEmailConnection = poplib.POP3_SSL(mailServer)
print myEmailConnection.getwelcome()
myEmailConnection.user(emailID)
myEmailConnection.pass_(emailPass)
EmailInformation = myEmailConnection.stat()
print "Number of new emails: %s (%s bytes)" % EmailInformation
print "\n\n===\nRead messages\n===\n\n"

numberOfMails = EmailInformation[0]
for i in range(numberOfMails):
    for email in myEmailConnection.retr(i+1)[1]:
        print email

代码正在运行。 我可以阅读我的所有信息。 但我的问题是如何将身体作为一个字符串? 是否可以将正文文本作为字符串?

THX

1 个答案:

答案 0 :(得分:0)

免责声明:我自己从未使用过poplib,但我确实在这里阅读了官方文档:https://docs.python.org/3/library/poplib.html#poplib.POP3.retr

当你在这里打电话给.retr(i + 1)时:

for i in range(numberOfMails):
    for email in myEmailConnection.retr(i+1)[1]:
        print email

retr(i + 1)返回3个值:(response, ['line', ...], octets)。 这里只取第二个值(通过执行.retr(i+1)[1]),其中包含消息行列表。

只需加入所有这些行即可获得单个字符串消息:

for i in range(numberOfMails):
    for emailLines in myEmailConnection.retr(i+1)[1]:
        print "\n".join(emailLines)

如果您想解析实际的MIME内容,可以使用@larsks建议的email