python想要保存QQ邮箱富途的附件

本文介绍了如何利用python的poplib库从QQ邮箱自动下载邮件附件。由于QQ邮箱的安全措施,需要设置16位授权码作为登录密码。通过连接、获取邮件列表、解析邮件和保存附件等步骤,实现了自动化拉取附件的功能。但目前只能获取到最近一个月的邮件,可能是QQ邮箱的限制。
摘要由CSDN通过智能技术生成

一、前言


对于编程来说,我期望的是并不仅仅用于make money,而是出于生活,融于生活。 
最近炒股,每天都会有一封邮件发到我的QQ邮箱,里面有今天账户的结算信息,感觉这个挺有意义的,可以记录每天的交易情况和相关费用,但是我又不想每天去下载这个附件。于是乎花了一个晚上研究了一下python的poplib库,完成了一个拉取QQ邮箱附件的程序。

二、实现

2.1 poplib是什么?

poplib是一个python的一个模块,用于专门的处理邮箱的邮件,是基于pop3的协议。
使用的话用import poplib就可以了。

2.2 代码说明

想要解析邮件分为几个步骤:

  • 第一步:创建链接
        pop_conn = poplib.POP3_SSL(self.host)  
        pop_conn.set_debuglevel(self.debugMode) 
        pop_conn.user(self.user)  
        pop_conn.pass_(self.pass_) 
 
 
 
  • 1
  • 2
  • 3
  • 4
使用poplib库创建一个SSL的链接,然后分别设置这个connect的几个参数,分别是:

- debugmode:0为关闭,1为开启。如果开启的话,会显示交互时的日志。
- username :邮箱的账号
- password :邮箱的密码
- host : 对应的邮箱的pop3协议的host,qq邮箱是pop.qq.com

注:这里有个坑爹的东西,如果直接用qq密码用作password的话,会提示这个报错 poplib.error_proto: -ERR Please using authorized code to login. 
这里写图片描述

跟着这个链接进去看,是因为qq出于安全的考虑,使用pop协议的时候,需要使用一个16位的密保来进行操作。按照链接里面的提示设置好了密码,再填入就可以使用了。

  • 第二步:获取邮件

几个主要的API:

pop_conn.stat()
pop_conn.list()
pop_conn.retr()
 
 
 
  • 1
  • 2
  • 3

stat()用于获取邮件的状态,例如:有46封邮件 
Messages: 46. Size: 3819672

list()用于获取邮件的列表状态: 
(‘+OK’, [‘1 196394’, ‘2 35328’, ‘3 195761’, ‘4 19024’, ‘5 63952’, ‘6 196662’, ‘7 45720’, ‘8 197030’, ‘9 15565’, ‘10 36985’, ‘11 2550’, ‘12 31237’, ‘13 26712’, ‘14 18984’, ‘15 15990’, ‘16 12196’, ‘17 21966’, ‘18 194291’, ‘19 194885’, ‘20 126483’, ‘21 14534’, ‘22 29710’, ‘23 196006’, ‘24 13974’, ‘25 34424’, ‘26 195320’, ‘27 202168’, ‘28 24900’, ‘29 22061’, ‘30 7843’, ‘31 53405’, ‘32 7958’, ‘33 7913’, ‘34 200682’, ‘35 5349’, ‘36 15979’, ‘37 34286’, ‘38 53619’, ‘39 198150’, ‘40 25144’, ‘41 7366’, ‘42 196818’, ‘43 214880’, ‘44 196847’, ‘45 18007’, ‘46 194614’], 461)

pop_conn.retr()则是用于获取每封邮件的状态了

  • 第三步:解析邮件

分为两步: 
1、先把pop_conn.retr()获得的一封邮件格式化一下,把其中的分割符化成”\n”(具体这一步的意义我没有深究,应该是方便email模块去解析)

        messages = ["\n".
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值