使用POP3在python中读取具有特定发件人地址的outlook电子邮件

使用POP3在python中读取具有特定发件人地址的outlook电子邮件,python,pop3,outlook.com,Python,Pop3,Outlook.com,上面的代码来自PythonPOP3文档,我使用了它,它工作正常。但是,这不是我真正想要的。我想读那些只来自特定发件人地址的电子邮件。我在python POP3库中没有找到任何方法。有人能帮忙吗?POP3协议只允许: 获取消息的数量 检索完整消息 删除消息 可选命令(TOP msg n)只允许读取消息的前n行。理论上,您可以使用它来完全下载来自特定地址的消息。poplib模块支持此命令,但手册中说明: …不幸的是,TOP在RFC中的指定很差,并且经常在非品牌服务器中被破坏。在信任POP3服务器

上面的代码来自PythonPOP3文档,我使用了它,它工作正常。但是,这不是我真正想要的。我想读那些只来自特定发件人地址的电子邮件。我在python POP3库中没有找到任何方法。有人能帮忙吗?

POP3协议只允许:

  • 获取消息的数量
  • 检索完整消息
  • 删除消息
可选命令(TOP msg n)只允许读取消息的前n行。理论上,您可以使用它来完全下载来自特定地址的消息。poplib模块支持此命令,但手册中说明:

…不幸的是,TOP在RFC中的指定很差,并且经常在非品牌服务器中被破坏。在信任POP3服务器之前,请针对您将使用的POP3服务器手动测试此方法


我的建议是,不要尝试使用它,它迟早会破裂。如果您必须坚持使用POP3,请执行邮件阅读器所做的操作:下载所有内容并在客户端对其进行过滤。如果您真的想过滤服务器端的消息,那么就不要考虑POP3协议,而使用针对它的IMAP4。通过
imaplib
模块

POP3没有过滤/搜索功能,它在Python中得到了很好的支持。你得自己查邮件哦。。。IMAP呢?那有吗?
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()