通过POP3协议读取指定邮件

简介: 先要安装maillib库   假设我要获得一周来,豆瓣发送的每个邮件中的第一个网址   import poplib import maillib from datetime import datetime, timedelta def email_filter(sen...

先要安装maillib库

 

假设我要获得一周来,豆瓣发送的每个邮件中的第一个网址

 

import poplib
import maillib
from datetime import datetime, timedelta


def email_filter(sender, body):
    target = "http://"
    sender, body = sender[1], body.split("\n")
    if sender == "webmaster@douban.com":
        for line in body:
            if target in line:
                return line.strip()


def read_email(email, password, host, port=110, days=0):
    conn = poplib.POP3(host, port)
    #conn.set_debuglevel(1) #输出调试信息
    conn.user(email)
    conn.pass_(password)

    links = []
    nr = conn.stat()[0] #获取邮件数量
    for i in range(nr, 0, -1):
        server_msg, body, octets = conn.retr(i)
        msg = maillib.Message.from_string( "\n".join(body) )
        today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
        if msg.date < today - timedelta(days=days):
            break
        link = email_filter(msg.sender, msg.body)
        if link:
            links.append(link)
    return links


if __name__ == "__main__":
    links = read_email("me@126.com", "pass", host="pop.126.com", days=7)
    for link in links:
        print link
 
目录
相关文章
|
XML Java 数据格式
深入理解 Spring IoC 和 DI:掌握控制反转和依赖注入的精髓
在本文中,我们将介绍 IoC(控制反转)和 DI(依赖注入)的概念,以及如何在 Spring 框架中实现它们。
796 0
|
关系型数据库 MySQL Go
MySQL连接错误1045:完美解决指南
MySQL连接错误1045:完美解决指南
11413 0
|
10月前
|
存储 人工智能 数据库
Codel:AI代理工具,支持在终端、浏览器、编辑器执行复杂任务和项目
Codel是一款全自主AI代理工具,支持在终端、浏览器和编辑器中执行复杂任务和项目。它运行在沙盒化的Docker环境中,具备自主操作能力,内置浏览器和文本编辑器,所有操作记录存储于PostgreSQL数据库。Codel能够自动完成复杂任务,如创建项目结构、进行网络搜索等,适用于自动化编程、研究与开发、教育与培训以及数据科学与分析等多个领域。
291 11
Codel:AI代理工具,支持在终端、浏览器、编辑器执行复杂任务和项目
|
11月前
|
负载均衡 监控 网络协议
SpringCloud之Ribbon使用
通过以上步骤,就可以在Spring Cloud项目中有效地使用Ribbon来实现服务调用的负载均衡,提高系统的可靠性和性能。在实际应用中,根据具体的业务场景和需求选择合适的负载均衡策略,并进行相应的配置和优化,以确保系统的稳定运行。
486 15
|
存储 缓存 Java
Apollo Config的简单介绍
Apollo Config是携程开源的分布式配置中心,在大规模、高并发、多环境下管理和推送配置非常方便。本文将从基本概念、应用场景、使用方式等方面介绍Apollo Config。
447 0
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之如何修改字段类型
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
235 2
|
安全 Java 网络安全
如何处理Java中的SSLException异常?
如何处理Java中的SSLException异常?
|
消息中间件 关系型数据库 MySQL
MySQL 到 Kafka 实时数据同步实操分享(1),字节面试官职级
MySQL 到 Kafka 实时数据同步实操分享(1),字节面试官职级