iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python模块之poplib: 用po
  • 301
分享到

python模块之poplib: 用po

模块pythonpo 2023-01-31 07:01:51 301人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

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

python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。
    POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然会回复一个信息。pop3命令码如下:
 命令 poplib方法    参数     状态     描述
-----------------------------------------------------------------------------------------------
USER  user     username  认可  用户名,此命令与下面的pass命令若成功,将导致状态转换
PASS  pass_   passWord  认可  用户密码   
APOP  apop   Name,Digest 认可   Digest是MD5消息摘要
-----------------------------------------------------------------------------------------------
STAT  stat    None     处理  请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL  uidl   [Msg#]    处理  返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST  list   [Msg#]    处理  返回邮件数量和每个邮件的大小
RETR  retr   [Msg#]     处理  返回由参数标识的邮件的全部文本
DELE  dele   [Msg#]     处理  服务器将由参数标识的邮件标记为删除,由quit命令执行
RSET  rset   None      处理   服务器将重置所有标记为删除的邮件,用于撤消DELE命令
TOP   top     [Msg#]    处理   服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOP  noop   None    处理  服务器返回一个肯定的响应
----------------------------------------------------------------------------------------------
QUIT  quit     None    更新     

    Python的poplib也针对这些命令分别提供了对应的方法,上面在第二列里已经标出来。收取邮件的过程一般是:
1. 连接pop3服务器 (poplib.POP3.__init__)
2. 发送用户名和密码进行验证 (poplib.POP3.user poplib.POP3.pass_)
3. 获取邮箱中信件信息 (poplib.POP3.stat)
4. 收取邮件 (poplib.POP3.retr)
5. 删除邮件 (poplib.POP3.dele)
6. 退出 (poplib.POP3.quit)
    注意的是,上面我在括号里写的是使用什么方法来完成这个操作,在实际的代码中不能那样写,应该是创建poplib.POP3的对象,然后,调用这个对象的方法。比如:
poplib.POP3.quit 
应该理解为 
a = poplib.POP3(host)
a.quit()
下面看看实际的代码:

#-*- encoding: gb2312 -*-
import os, sys, string
import poplib

# pop3服务器地址
host = "pop3.163.com"
# 用户名
username = "xxxxxx@163.com"
# 密码
password = "xxxxxxx"
# 创建一个pop3对象,这个时候实际上已经连接上服务器了
pp = poplib.POP3(host)
# 设置调试模式,可以看到与服务器的交互信息
pp.set_debuglevel(1)
# 向服务器发送用户名
pp.user(username)
# 向服务器发送密码
pp.pass_(password)
# 获取服务器上信件信息,返回是一个列表,第一项是一共有多上封邮件,第二项是共有多少字节
ret = pp.stat()
print ret
# 需要取出所有信件的头部,信件id是从1开始的。
for i in range(1, ret[0]+1):
    # 取出信件头部。注意:top指定的行数是以信件头为基数的,也就是说当取0行,
    # 其实是返回头部信息,取1行其实是返回头部信息之外再多1行。
    mlist = pp.top(i, 0)
    print 'line: ', len(mlist[1])
# 列出服务器上邮件信息,这个会对每一封邮件都输出id和大小。不象stat输出的是总的统计信息
ret = pp.list()
print ret
# 取第一封邮件完整信息,在返回值里,是按行存储在down[1]的列表里的。down[0]是返回的状态信息
down = pp.retr(1)
print 'lines:', len(down)
# 输出邮件
for line in down[1]:
    print line
# 退出
pp.quit()

在有些地方,有安全邮件这一说,其实是对pop3做了ssl加密。这样的,poplib一样可以处理,只不过不是用POP3这个类,而是用POP3_SSL, 他们的方法都一样。因此支持ssl在上面代码中,替换创建pop3对象的一行为:

pp = poplib.POP3_SSL(host)


--结束END--

本文标题: python模块之poplib: 用po

本文链接: https://www.lsjlt.com/news/191711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python模块之poplib: 用po
    python的poplib模块是用来从pop3收取邮件的,也可以说它是处理邮件的第一步。    POP3协议并不复杂,它也是采用的一问一答式的方式,你向服务器发送一个命令,服务器必然会回复一个信息。pop3命令码如下: 命令 poplib方...
    99+
    2023-01-31
    模块 python po
  • Python网络编程之使用email、smtplib、poplib、imaplib模块收发邮件
    一封电子邮件的旅程是: MUA:Mail User Agent——邮件用户代理。(即类似Outlook的电子邮件软件)MTA:Mail Transfer Ag...
    99+
    2024-04-02
  • Python如何使用email、smtplib、poplib、imaplib模块收发邮件
    一封电子邮件的旅程是:Mail User Agent (MUA) refers to an email client or software used by a user to access their email account.。(即类...
    99+
    2023-05-17
    Python email smtplib
  • Python模块学习之IPy模块
    IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等。Python提供了一个强大的第...
    99+
    2023-01-31
    模块 Python IPy
  • python之logging模块使用
    #!/usr/bin/env python # encoding: utf-8 import logging #定义handler的输出格式 formatter=logging.Formatter('%(asctime)s--%(name)...
    99+
    2023-01-31
    模块 python logging
  • Python时间模块之datetime模块
    目录 简介 函数介绍及运用 date:日期类 1.获取当前时间  2.日期对象的属性 3.date类中时间和时间戳的转换: 4.修改日期使用replace方法  time:时间类  time类操作 datetime:日期时间类 timede...
    99+
    2023-09-12
    python datetime python 日期时间
  • python常用的时间模块之datetime模块
    今天小编给大家分享的是python常用的时间模块之datetime模块,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。一、基本类型1、date类datetime.date(2023,5...
    99+
    2023-08-03
  • python之os模块
    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块:import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) #chdir()改变当前工作目录 #操作时如果书写完整的路径则不...
    99+
    2023-01-30
    模块 python os
  • python模块之collections
    计数器 Counter 计数元素迭代器 elements() 计数对象拷贝 copy() 计数对象清空 clear() from collections import Counter #import collection...
    99+
    2023-01-30
    模块 python collections
  • Python 之os模块
    os模块提供了访问多个操作系统服务的功能,os模块的子模块os.path模块也包含了一些文件目录常用操作的函数。access(path, mode) :检测对文件的访问权限。>>> os.access('/root/zhu...
    99+
    2023-01-31
    模块 Python os
  • Python 之 pexpect模块
    python安装setuptools模块之后,便可使用easy_install来安装python的第三方扩展模块,默认安装路径是:/usr/lib/python2.6/site-packages/easy_install 模块名 #可以直接...
    99+
    2023-01-31
    模块 Python pexpect
  • python模块之hashlib
    hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定义的MD5 注意点:1. adler32及crc32哈希由z...
    99+
    2023-01-31
    模块 python hashlib
  • Python 之 paramiko 模块
    paramiko模块是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接1.安装#paramiko模块的安装需要先安装PyCrypto模块 wget https://pypi.python.or...
    99+
    2023-01-31
    模块 Python paramiko
  • python之selectors模块
      selectors模块是在python3.4版本中引进的,它封装了IO多路复用中的select和epoll,能够更快,更方便的实现多并发效果。  官方文档见:https://docs.python.org/3/library/...
    99+
    2023-01-31
    模块 python selectors
  • python模块之shutil
    shutil模块提供了一些针对文件和目录的高级操作,主要是拷贝、移动。对于单个文件的操作,还可参考os模块 Warning:即使是高级别的拷贝函数(shutil.copy(),shutil.copy2())也不能拷贝所有的文件元数据。意思...
    99+
    2023-01-31
    模块 python shutil
  • Python 之 shutil模块
    shutil模块用于执行高级的文件操作,如复制,移动重命名等。>>> shutil. shutil.Error shutil._samefile shutil.__all__ s...
    99+
    2023-01-31
    模块 Python shutil
  • python之netifaces模块
    #!/usr/bin/python # encoding: utf-8 # -*- coding: utf8 -*- """ Create Date:        2016/12/26 Create Time:        17:53 ...
    99+
    2023-01-31
    模块 python netifaces
  • python之sys模块
    sys.argv 命令行参数List,第一个元素是程序本身路径;类似于shell的位置参数 sys.argv[0] 表示程序自身sys.argv[1] 表示程序的第一个参数sys.argv[2] 表示程序的第二个参数 #!/usr...
    99+
    2023-01-31
    模块 python sys
  • Python模块之pexpect
    pexpect是一个用来启动子程序并对其进行自动控制的 Python 模块。pexpect 可以用来和像 ssh、passwd、telnet 、rsync等命令行程序进行自动交互下面是我用pexpect写的一个脚本,是用来执行远程主机命令,...
    99+
    2023-01-31
    模块 Python pexpect
  • Python之Subprocess模块
    前言其实有一个模块也支持执行系统命令,那个模块就是sys.system,但他执行系统命令会直接通过主进程去执行命令,那假如,该命令的执行需要耗费一个小时,那么主进程会卡一个小时,而不会去干别的事,这样就会导致程序的运行效率低下。 如果由su...
    99+
    2023-01-31
    模块 Python Subprocess
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作