import getpass, poplib
user = 'my_user_name'
Mailbox = poplib.POP3_SSL('pop-mail.outlook.com.com', '995')
Mailbox.user(user)
Mailbox.pass_('my_password')
numMessages = len(Mailbox.list()[1])
for i in range(numMessages):
for msg in Mailbox.retr(i+1)[1]:
print msg
Mailbox.quit()
以上代码来自python POP3文档,我使用它并且它有效。但是,这不是我想要的。我想阅读那些来自特定地址的电子邮件。我没有在python POP3库中找到任何方法。有人可以帮忙吗?
答案 0 :(得分:0)
POP3协议仅允许:
可选命令(TOP msg n)允许只读取消息的n个第一行。理论上,您可以使用它仅完全下载来自特定地址的消息。 poplib模块支持此命令,但手册中说明:
...遗憾的是,在RFC中指定的TOP很少,并且在品牌外的服务器中经常被破坏。在信任之前,请手动对照您将使用的POP3服务器测试此方法。
我的建议是甚至不尝试使用,它很可能迟早会破坏。如果您必须坚持使用POP3做邮件阅读器的操作:下载所有内容并过滤客户端。如果您真的要过滤消息服务器端,请忘记POP3协议并使用针对它的IMAP4。它通过imaplib
模块