测试Python的poplib模块读取邮箱信息
Python中的poplib模块能够连接POP3 服务器,可以用于读取邮箱信息,不过根据python官网文献(参考文献4)中的提醒:“POP3 已经过时,POP3 服务器的实现质量差异很大,而且大多很糟糕。如果邮件服务器支持 IMAP,则最好使用 imaplib.IMAP4 类,因为 IMAP 服务器一般实现得更好“。本文学习并验证参考文献1中的示例代码,后续会接着学习imaplib的用法。
以163邮箱为例,使用poplib模块以POP3方式连接邮箱服务器需要在邮箱中开启POP3/SMTP服务。如下图所示,登录163邮箱,点击设置链接,在弹出的菜单中选择POP3/SMTP/IMAP,在开启服务中开启POP3/SMTP服务即可。
163邮箱默认POP3/SMTP服务是开启的,此时使用poplib模块连接时使用的密码是邮箱登录密码。如果将其关闭,然后再次开启,则会得到一个随机的授权密码,此时再使用邮箱登录密码则无法连接,需要使用上述授权密码才能正常登录。
直接使用的参考文献1中的代码进行测试(主要功能为获取邮件数量),用到的主要函数说明及代码如下:
序号 | 函数 | 说明 |
---|---|---|
1 | POP3_SSL | 经以SSL 加密方式连接到服务器 |
2 | set_debuglevel | 设置实例的调试级别,它控制着调试信息的数量。默认值 0 不产生调试信息。值 1 产生中等数量的调试信息,通常每个请求产生一行。大于或等于 2 的值产生的调试信息最多。 |
3 | user | 发送用户名 |
4 | pass_ | 发送密码 |
5 | stat | 获取邮箱状态。结果为 2 个整数组成的元组:(message count, mailbox size)。 |
6 | quit | 断开连接 |
# coding=utf-8import poplibhost='pop.163.com'
username='XXXXXXXXXX@163.com'
password='XXXXXXXXXX'pp=poplib.POP3_SSL(host)
pp.set_debuglevel(1)
pp.user(username)
pp.pass_(password)ret=pp.stat()
mailCount=ret[0]
print('一共',mailCount,'封邮件')pp.quit()
运行上述程序,看到返回的结果中邮件数量为0,但实际邮箱中邮件数量有将近100份左右,不清楚原因为何。
百度上述问题,在参考文献3中看到了解释,应该还是邮箱设置的问题,其默认设置为收取最新30天邮件,将其设置改为收取全部邮件即可(实际测试时从服务器接收的数量不稳定,有时明明设置了授权全部邮件,但要多次运行程序后才会收到正确的邮件数量)。
本文仅是根据参考文献对poplib模块进行简单测试。Python的官方文档建议使用IMAP,同时参考文献5和6都介绍IMAP比POP3方便使用,后续主要学习Python中的imaplib模块。
参考文献:
[1]Python从菜鸟到高手
[2]https://www.jianshu.com/p/544a35bc8c92
[3]https://www.cnblogs.com/robzh/p/14770497.html
[4]https://docs.python.org/zh-cn/3/library/poplib.html?highlight=poplib#module-poplib
[5]https://zhuanlan.zhihu.com/p/28377718
[6]http://help.163.com/10/0203/17/5UK7GVU100753VB9.html?servCode=6020251
测试Python的poplib模块读取邮箱信息相关推荐
- Python模块介绍使用:zmail模块读取邮箱内邮件信息
hello,大家好,我是wangzirui32,今天来教大家如何使用zmail模块读取邮箱内邮件信息,开始学习吧! 1. zmail安装 在命令行中输入以下命令即可安装: pip install zm ...
- python利用xlrd模块读取xls表格选中某列提取全部数值,使用re去除英文字母,用ast将str类型转换成list
python利用xlrd模块读取xls表格选中某列提取全部数值,使用re去除英文字母,用ast将str类型转换成list import ast # 获取xls表中的代码并去重 import xlrd ...
- python的reader函数读取的信息包括抬头嘛_Python读取数据文件的方法
要进行数据分析的前提就是要获取数据和导入数据,获取数据的方法有很多,这个不是我们要讲的这个系列的内容,在以后在说. 我们现在先来学习读取导入数据的方法. Python可以读取的数据文件格式有:文本文件 ...
- [转载] Python利用openpyxl模块读取excel文件内容
参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...
- 【Python的configparser模块读取.ini文件内容并输出】
configparser是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近.Python2.x 中名为 ConfigParser,3.x 已更名小写.下文通过使用python ...
- 基于python的Spectral模块读取高光谱影像信息的一些笔记
1. 安装spectral模块 spectral模块的安装需要有numpy.pillow.wxpython.matplotlib.ipython等这几个包的铺垫,而且安装spectral模块时看的教程 ...
- 【Python】 linecache模块读取文件
[linecache] 过往在读取文件的时候,我们通常使用的是这种模式: with open('file.txt','r') as f:line = f.readline()while line:pr ...
- python利用numpy模块读取csv文件
文章目录 numpy.loadtxt()方法 简单读取 字符串处理-str参数 跳过首行 - skiprow = 1 读取特定列 - usecols参数 numpy切片 更多读取方法 numpy.lo ...
- smtplib python教程_Python使用poplib模块和smtplib模块收发电子邮件的教程
poplib模块接收邮件python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步. POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然 ...
- python操作文件的库_Python使用pyshp库读取shapefile信息的方法
通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp#reading-shapefil ...
最新文章
- Android自动化测试之monkeyrunner基本要素(七)
- es重建字段类型_关于elasticsearch中更新数据的几种方式
- 类似flashget的浮动窗口的实现
- 神操作!傅里叶变换取代Transformer自注意力层
- [专栏精选]Unity中的Git最佳实践
- Log4Net 配置日志按日期和日志级别分类写入
- 物联网应用层的关键技术有哪些
- 九度 OJ 之 题目1538:GrassLand密码
- Unity快速入门之台球小游戏(二)
- IDEA中suppress warnings
- HEG运行错误:GetBeginAndEndLocs
- mac卸载Sophos[即使没有服务端管理员密码]-完整有效彻底
- 别人的【计算机视觉算法岗面经】“吐血”整理:2019秋招面经
- 研发新人如何快速熟悉新项目和业务
- python point
- OpenFlow:Enabling Innovation in Campus Networks 译文
- 攻防世界 Misc 坚持60s
- 飞行员助手:智能用户界面的设计与评估
- MySQL笔试题(附答案)
- 我的世界服务器修改游戏难度,[娱乐|其它]TrueLife —— 我的世界服务器提高生存难度插件 让MineCraft更真实 [全版本]...