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模块读取邮箱信息相关推荐

  1. Python模块介绍使用:zmail模块读取邮箱内邮件信息

    hello,大家好,我是wangzirui32,今天来教大家如何使用zmail模块读取邮箱内邮件信息,开始学习吧! 1. zmail安装 在命令行中输入以下命令即可安装: pip install zm ...

  2. python利用xlrd模块读取xls表格选中某列提取全部数值,使用re去除英文字母,用ast将str类型转换成list

    python利用xlrd模块读取xls表格选中某列提取全部数值,使用re去除英文字母,用ast将str类型转换成list import ast # 获取xls表中的代码并去重 import xlrd ...

  3. python的reader函数读取的信息包括抬头嘛_Python读取数据文件的方法

    要进行数据分析的前提就是要获取数据和导入数据,获取数据的方法有很多,这个不是我们要讲的这个系列的内容,在以后在说. 我们现在先来学习读取导入数据的方法. Python可以读取的数据文件格式有:文本文件 ...

  4. [转载] Python利用openpyxl模块读取excel文件内容

    参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...

  5. 【Python的configparser模块读取.ini文件内容并输出】

    configparser是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近.Python2.x 中名为 ConfigParser,3.x 已更名小写.下文通过使用python ...

  6. 基于python的Spectral模块读取高光谱影像信息的一些笔记

    1. 安装spectral模块 spectral模块的安装需要有numpy.pillow.wxpython.matplotlib.ipython等这几个包的铺垫,而且安装spectral模块时看的教程 ...

  7. 【Python】 linecache模块读取文件

    [linecache] 过往在读取文件的时候,我们通常使用的是这种模式: with open('file.txt','r') as f:line = f.readline()while line:pr ...

  8. python利用numpy模块读取csv文件

    文章目录 numpy.loadtxt()方法 简单读取 字符串处理-str参数 跳过首行 - skiprow = 1 读取特定列 - usecols参数 numpy切片 更多读取方法 numpy.lo ...

  9. smtplib python教程_Python使用poplib模块和smtplib模块收发电子邮件的教程

    poplib模块接收邮件python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步. POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然 ...

  10. python操作文件的库_Python使用pyshp库读取shapefile信息的方法

    通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp#reading-shapefil ...

最新文章

  1. Android自动化测试之monkeyrunner基本要素(七)
  2. es重建字段类型_关于elasticsearch中更新数据的几种方式
  3. 类似flashget的浮动窗口的实现
  4. 神操作!傅里叶变换取代Transformer自注意力层
  5. [专栏精选]Unity中的Git最佳实践
  6. Log4Net 配置日志按日期和日志级别分类写入
  7. 物联网应用层的关键技术有哪些
  8. 九度 OJ 之 题目1538:GrassLand密码
  9. Unity快速入门之台球小游戏(二)
  10. IDEA中suppress warnings
  11. HEG运行错误:GetBeginAndEndLocs
  12. mac卸载Sophos[即使没有服务端管理员密码]-完整有效彻底
  13. 别人的【计算机视觉算法岗面经】“吐血”整理:2019秋招面经
  14. 研发新人如何快速熟悉新项目和业务
  15. python point
  16. OpenFlow:Enabling Innovation in Campus Networks 译文
  17. 攻防世界 Misc 坚持60s
  18. 飞行员助手:智能用户界面的设计与评估
  19. MySQL笔试题(附答案)
  20. 我的世界服务器修改游戏难度,[娱乐|其它]TrueLife —— 我的世界服务器提高生存难度插件 让MineCraft更真实 [全版本]...

热门文章

  1. WebSphere漏洞总结复现
  2. linux 网卡 mac 配置文件,Linux脚本程序自动修改网卡配置文件中的MAC地址
  3. 金山云直播问答解决方案来了!让客户一天上线
  4. Python爬虫实战--小猪短租爬虫
  5. can总线短距离不用双绞线_CAN总线抗干扰的6条“军规”
  6. 计算机视觉、模式识别、人工智能
  7. 纯前端word导出echarts图表
  8. 如何运用阿里巴巴国际站进行数据分析?
  9. 计算机音乐谱策马奔腾,策马奔腾简谱
  10. Linux重新挂载磁盘,如何把磁盘挂载到已有目录上面