通过POP3协议读取指定邮件

先要安装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
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值