Python:只检索 POP3 消息文本,没有标题

标签 python email text pop3 poplib

我正在尝试制作一个 Python 程序,它只检索电子邮件的正文而不传递标题或任何其他参数。我不确定该怎么做。

目标是能够通过消息文本向程序发送基本命令。

我现在拥有的是:

import poplib

host = "pop.gmail.com"
mail = poplib.POP3_SSL(host)
print mail.getwelcome()
print mail.user("user")
print mail.pass_("pass")
print mail.stat()
print mail.list()
print ""

if mail.stat()[1] > 0:
    print "You have new mail."
else:
    print "No new mail."

print ""

numMessages = len(mail.list()[1])
for i in range(numMessages):
    for j in mail.retr(i+1)[1]:
        print j

mail.quit()
input("Press any key to continue.")

这一切都很好,除了执行“print J”时它会打印整个消息,包括标题。我只想提取正文文本,不要产生任何额外的垃圾。

有人可以帮忙吗?谢谢!

最佳答案

我会使用 email 模块通过跳过标题信息的 get_payload() 方法获取电子邮件正文。

我在你的代码中添加了几行(它们在行尾标有# new statement)

import poplib
import email # new statement

host = "pop.gmail.com"
mail = poplib.POP3_SSL(host)
print mail.getwelcome()
print mail.user("user")
print mail.pass_("pass")
print mail.stat()
print mail.list()
print ""

if mail.stat()[1] > 0:
    print "You have new mail."
else:
    print "No new mail."

print ""

numMessages = len(mail.list()[1])
for i in range(numMessages):
    for j in mail.retr(i+1)[1]:
        #print j
        msg = email.message_from_string(j) # new statement
        print(msg.get_payload()) # new statement

mail.quit()
input("Press any key to continue.")

关于Python:只检索 POP3 消息文本,没有标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218066/

相关文章:

python - 有效管理日益复杂的 Django URL View ? (网址.py)

email - 设备(事物)与 AWS IoT 断开连接时发送邮件的规则

php - 如何发送自动电子邮件(优惠券网站)?

python - 某些字符的正则表达式冲突 (ISO-8859-1 Windows-1252)

python - 如何在python中将信息保存到文件中? (简单的编程)

python - py2app 到 zlib 的无效链接

python - pyside 通过样式表设置背景图像不起作用

python - 怎么强制去上课?

javascript - 单击电子邮件验证按钮未打开新窗口

html - 将左侧 float div 中的图像与右侧 float div 中的文本垂直对齐