【脚本语言系列】关于Python邮件服务poplib,你需要知道的事

如何使用poplib

使用poplib接收QQ邮件
注意:使用第三方邮件客户端,需要使用短信开通并获取授权码。

http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
这里写图片描述

# -*- coding:utf-8 -*-
#
import re
import poplib
import Tkinter
class Window:
    def __init__(self, root):
        label1 = Tkinter.Label(root, text = 'POP3')
        label2 = Tkinter.Label(root, text = 'Port')
        label3 = Tkinter.Label(root, text = '用户名')
        label4 = Tkinter.Label(root, text = '密码')
        label1.place(x = 5, y = 5)
        label2.place(x = 5, y = 30)
        label3.place(x = 5, y = 55)
        label4.place(x = 5, y = 80)
        self.entryPOP = Tkinter.Entry(root)
        self.entryPort = Tkinter.Entry(root)
        self.entryUser = Tkinter.Entry(root)
        self.entryPass = Tkinter.Entry(root, show='*')
        self.entryPOP.insert(Tkinter.END, "pop.qq.com")
        self.entryPort.insert(Tkinter.END, "995")
        self.entryUser.insert(Tkinter.END, "********@qq.com")# ******@qq.com为测试邮箱,下同
        self.entryPass = Tkinter.Entry(root, show='*')
        self.entryPass.insert(Tkinter.END, "****************") # 填入“授权码”
        self.entryPOP.place(x = 40, y = 5)
        self.entryPort.place(x = 40, y = 30)
        self.entryUser.place(x = 40, y = 55)
        self.entryPass.place(x = 40, y = 80)
        self.get=Tkinter.Button(root, text = '收取邮件', command = self.Get)
        self.get.place(x=60, y=120)
        self.text = Tkinter.Text(root)
        self.text.place(y=150)
    def Get(self):
        try: 
            host = self.entryPOP.get()
            port = int(self.entryPort.get())
            user = self.entryUser.get()
            pw = self.entryPass.get()
            # pop = poplib.POP3(host)
            pop = poplib.POP3_SSL(host, port)
            pop.set_debuglevel(1)
            pop.user(user)
            pop.pass_(pw)
            stat = pop.stat()
            self.text.insert(Tkinter.END,'Status: %d message(s), %d bytes\n' % stat)
            rx_headers = re.compile(r"^(From|To|Subject)")
            for n in range(stat[0]):
                response, lines, bytes = pop.top(n+1, 10)
                self.text.insert(Tkinter.END,"Message %d (%d bytes)\n" % (n+1, bytes))
                self.text.insert(Tkinter.END, "-" * 30 + '\n')
                self.text.insert(Tkinter.END, "\n".join(filter(rx_headers.match, lines)))
                self.text.insert(Tkinter.END, "\n")
                self.text.insert(Tkinter.END, "-" * 30 + "\n")
        except:
            self.text.insert(Tkinter.END, '接收错误\n')
root = Tkinter.Tk()
window = Window(root)
root.minsize(600, 480)
root.mainloop()        

这里写图片描述
这里写图片描述
1. 客户端界面
这里写图片描述
2. 交互信息
这里写图片描述
3. 收信信息
这里写图片描述

什么是poplib

Python中poplib模块提供了对POP3协议的支持。
使用POP3协议可以登录E-mail收取邮件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值