• 测试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中的代码进行测试(主要功能为获取邮件数量),用到的主要函数说明及代码如下:

    序号函数说明
    1POP3_SSL经以SSL 加密方式连接到服务器
    2set_debuglevel设置实例的调试级别,它控制着调试信息的数量。默认值 0 不产生调试信息。值 1 产生中等数量的调试信息,通常每个请求产生一行。大于或等于 2 的值产生的调试信息最多。
    3user发送用户名
    4pass_发送密码
    5stat获取邮箱状态。结果为 2 个整数组成的元组:(message count, mailbox size)。
    6quit断开连接
    # coding=utf-8
    
    import poplib
    
    host='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

  • 相关阅读:
    C程序是如何跑起来的01 —— 普通可执行文件的构成
    首届828 B2B企业节河北站赋能中小企业数字化转型 打造智慧河北
    基于Python+word2vec模型的词向量化文本分类算法
    零基础自学javase黑马课程第三天
    我的python-web基础(Flask前后端不分类)
    @准大一萌新:学长学姐的N条忠告,字字珠玑,句句经典
    有哪些零售O2O应用模式?如何构建O2O闭环生态系统?
    科技风UI除了蓝色,还有什么配色选择?
    逍遥自在学C语言 | 多级指针探秘
    哈啰面试:说说Dubbo运行原理?
  • 原文地址:https://blog.csdn.net/gc_2299/article/details/127081304