Python笔记 之 poplib模块

poplib模块定义了POP3类,封装了到POP3服务器的连接,并实现了RFC1939中定义的协议。POP3类支持RFC1939中的最小和可选命令集。POP3类还支持RFC2595中引入的STLS命令,以便在已建立的连接上启用加密通信。
poplib官方说明文档

官方小例子

import getpass, poplib

M = poplib.POP3('localhost')
M.user(getpass.getuser())
M.pass_(getpass.getpass())
numMessages = len(M.list()[1])
for i in range(numMessages):
    for j in M.retr(i+1)[1]:
        print(j)

简要介绍

#poplib.POP3(host, port=POP3_PORT[, timeout])
使用POP3协议初始化并创建连接
如果省略端口,则使用标准POP3端口(110)
可选的timeout参数指定连接尝试的超时时间(以秒为单位),如果未指定,将使用全局默认超时设置

#poplib.POP3_SSL(host, port=POP3_SSL_PORT, keyfile=None, certfile=None, timeout=None, context=None)
POP3的子类,允许使用SSL加密的套接字与服务器通信,需要提供授权证书和私钥

#POP3.set_debuglevel(level)
设置实例的调试级别:0,默认值,不生成调试输出;1,适当的调试输出,通常一个请求一行;2,最大数量的调试输出

#POP3.getwelcome()
返回POP3服务器的欢迎信息

#POP3.capa()
查询指定的服务器功能。

#POP3.user(username)
向服务器发送用户信息

#POP3.pass_(password)
向服务器发送用户密码或者授权码

#POP3.apop(user, secret)
使用更安全的APOP身份验证登录POP3服务器,需要服务支持

#POP3.rpop(user)
使用RPOP身份验证登录POP3服务器,需要服务支持

#POP3.stat()
获取服务器状态,返回由邮件数量和字符大小组成的元祖

#POP3.list([which])
获取邮箱信息列表,返回由邮箱状态,邮件列表和octets组成的元祖

#POP3.retr(which)
返回指定的邮件内容

#POP3.dele(which)
标记指定的邮件,待退出连接时删除

#POP3.rset()
移除已标注的删除标识

#POP3.quit()
断开连接,提交修改

#POP3.top(which, howmuch)
检索邮件头及额外行数的信息

#POP3.uidl(which=None)
获取信息摘要列表

#POP3.utf8()
尝试切换到utf8模式

#POP3.stls(context=None)
活动连接上启动TLS会话,只有在用户身份验证之前才允许这样做

简单例子

popserver = 'pop.163.com'
popuser = 'xxxxx@163.com'
authorizedcode = 'xxxxxxxxxxxx'
#163需登录邮箱,手动开通pop3/smtp服务
import poplib
server = poplib.POP3(popserver)
server.set_debuglevel(1)
server.stls()
server.utf8()
server.user(popuser)
server.pass_(authorizedcode)
print(server.getwelcome())
print(server.capa())
print(server.list())
print(server.list(1))
print(server.retr(1))
print(server.top(1, 5))
print(server.uidl(which=1))

输出结果

*cmd* 'CAPA'
*cmd* 'STLS'
*cmd* 'UTF8'
*cmd* 'USER xxxxx@163.com'
*cmd* 'PASS xxxxxxxxxxxx'
b'+OK Welcome to coremail Mail Pop3 Server (163coms[10774b260cc7a37d26d71b52404dcf5cs])'
*cmd* 'CAPA'
{'TOP': [], 'USER': [], 'PIPELINING': [], 'UIDL': [], 'LANG': [], 'UTF8': [], 'SASL': ['PLAIN'], 'STLS': []}
*cmd* 'LIST'
(b'+OK 7 194445', [b'1 29990', b'2 29147', b'3 29992', b'4 29150', b'5 55165', b'6 9785', b'7 11216'], 62)
*cmd* 'LIST 1'
b'+OK 1 29990'
*cmd* 'RETR 1'
(b'+OK 29990 octets', [b'Received: ....)
*cmd* 'TOP 1 5'
(b'+OK 29990 octets', [b'Received: ....)
*cmd* 'UIDL 1'
b'+OK 1 1tbigAvb6Vr6m3XK0QAAss'
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值