我有以下代码:
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
答案 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
库