Python邮件相关模块之poplib


       Python与邮件服务相关的模块主要有4个:poplib和imaplib主要提供从邮件服务器上下载邮件;smtplib主要提供发送邮件服务;email模块主要提供分析邮件和构建邮件功能。


       POP3全称'Post Office Protocol - Version 3',即邮局协议版本3.是TCP/IP协议簇中的一员,使用默认端口110.主要用于支持客户端远程管理服务器上的电子邮件。


  • import poplib    # 导入模块

  • server=poplib.POP3(mailserver)    #建立到邮件服务器的连接,如:pop.163.com

  • server.user(mailuser)    #连接并登入邮箱账户,如:test@163.com

  • server.pass_(mailpassword)  #输入登陆密码,主意pass后面有_,此处通常用getpass来输入密码

  • msgCount,msgBytes=server.stat()  #获取邮箱信息,包括邮件数目,邮件总字节数


  • header, message, octets=server.retr(N)   #获取第N封邮件信息,邮件从1开始排序。获取内容包括邮件头部,邮件内容,邮件字节数。

  • server.encoding='utf-8'   #可以自定义编解码方式

  • server.getwelcome()  #获取邮件服务器上的欢迎信息

  • server.list()      #获取服务器上的邮件列表,其中主要包含邮件编号(retr的时候用的N),邮件的大小(bytes)

  • server.dele(msgnum)   #在服务器上删除第msgnum封邮件

  • server.top(N,0)     #获得第N封邮件的头部信息,第二个数字表示除了头部信息外还额外取多少行内容

  • server.quit()      # 关闭连接


       利用上述的功能,就可以写出一个自己的简单的收取邮件的小脚本了。下面是我自己的163邮箱收取脚本,仅供参考:

#!/usr/local/bin/python
#coding:utf-8

import poplib, getpass, sys, mailconfig

mailserver='pop.163.com'
mailuser='w*****@163.com'
mailpasswd=getpass.getpass('Password for %s?' % mailserver)

print('Connecting...')
server=poplib.POP3(mailserver)
server.user(mailuser)
server.pass_(mailpasswd)

try:
    print(server.getwelcome())
    msgCount, msgBytes=server.stat()
    print('There are',msgCount,'mail messages in', msgBytes,'bytes')
    print(server.list())
    print('-'*80)
    input('[Press Enter Key]')

    for i in range(msgCount):
        hdr,message,octets=server.retr(msgCount-i)
        for line in message:print(line.decode('gbk'))
        print('-'*80)
        if i<msgCount-1:
            input('[Press Enter Key]')
finally:
    server.quit()
print('Bye.')



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值