python读取pop3服务器邮件并且下载
# -*- coding: cp936 -*- import poplib import random import os def getmail(): # 蒋辉文拥有该程序权利 你可以随意使用 emailServer = poplib.POP3('pop.163.com') emailServer.user('xxxxxxxxxxxxxx') emailServer.pass_('xxxxxxxxxxxxxx') # 设置为1,可查看向pop3服务器提交了什么命令 #emailServer.set_debuglevel(1) # 获取欢迎消息 serverWelcome = emailServer.getwelcome() #print serverWelcome # 获取一些统计信息 emailMsgNum, emailSize = emailServer.stat() #print 'email number is %d and size is %d'%(emailMsgNum, emailSize) #判断没有文件夹,则创建目标文件夹 if not os.path.exists("POP3"): print "分析到目录没有POP3文件夹,程序正在自动创建......." os.mkdir("POP3") # 遍历邮件,并打印出每封邮件的标题 for i in range(emailMsgNum): #生成目标文件 name="POP3\\pop3mail_"+str(random.randint(1,100000000))+".eml"; file_object = open(name,'w') content='' for piece in emailServer.retr(i+1)[1]: content+=piece content+='\r\n' #写入eml file_object.write(str(content)) file_object.close( ) emailServer.quit() print "正在下载邮件....请耐心等待....." getmail() print "....下载完成....."
错误检测(增加了异常检测模块)
# -*- coding: cp936 -*- import poplib import random import os def getmail(): # 蒋辉文拥有该程序权利 你可以随意使用 try: emailServer = poplib.POP3('pop.163.com') emailServer.user('xxxxxxxx') emailServer.pass_('xxxxxxx') # 设置为1,可查看向pop3服务器提交了什么命令 #emailServer.set_debuglevel(1) # 获取欢迎消息 serverWelcome = emailServer.getwelcome() # 获取一些统计信息 emailMsgNum, emailSize = emailServer.stat() #判断没有文件夹,则创建目标文件夹 if not os.path.exists("POP3"): print "分析到目录没有POP3文件夹,程序正在自动创建......." os.mkdir("POP3") print "正在下载邮件...." # 遍历邮件,并打印出每封邮件的标题 for i in range(emailMsgNum): #生成目标文件 name="POP3\\pop3mail_"+str(random.randint(1,100000000))+".eml"; file_object = open(name,'w') content='' for piece in emailServer.retr(i+1)[1]: content+=piece content+='\r\n' #写入eml file_object.write(str(content)) file_object.close( ) emailServer.quit() #程序执行成功 print "....下载完成....." except poplib.error_proto,e: print "用户名或密码错误!请重新输入" print "正在下载邮件....请耐心等待....." getmail()
这个是本人在开发公司的一个项目中的一部分,觉得还不错,就贴出来供大家使用
程序从pop3服务器中下载邮件到程序当前目录下的POP3文件夹,如果不存在POP3文件夹,程序自动创建。
需要提供POP3协议的服务器IP,用户名(即完整邮箱地址),密码
经过PYTHON2.7测试成功。
有问题加QQ2586900741