# -*- 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

python读取pop3服务器邮件并且下载的更多相关文章

  1. python 读取Linux服务器上的文件

    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...

  2. python 利用pop3接收邮件并保存附件

    def SaveAttach():# login the pop3 server ,retrive the new mails ,and download the attachments dstdir ...

  3. 五十七 POP3收取邮件

    SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python ...

  4. SMTP协议及POP3协议-邮件发送和接收原理(转)

    本文转自https://blog.csdn.net/qq_15646957/article/details/52544099 感谢作者 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 ...

  5. Python学习笔记(四十八)POP3收取邮件

    收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python内置一个poplib模块,实现了POP3协 ...

  6. 使用C#和OpenPop.dll开发读取POP3邮件程序

    制作一个ASP.NET MVC4论坛项目,该项目需要将以往十多年的Mail List(邮件列表)内容都导入到新的论坛中,因此需要能够将邮件的标题.发布时间.发布人及邮件内容导入到论坛的数据库内..Ne ...

  7. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  8. [源码]Python简易http服务器(内网渗透大文件传输含下载命令)

    Python简易http服务器源码 import SimpleHTTPServerimport SocketServerimport sysPORT = 80if len(sys.argv) != 2 ...

  9. 常用邮件SMTP POP3服务器地址大全

    #阿里云邮箱(mail.aliyun.com): POP3服务器地址:pop3.aliyun.com(SSL加密端口:995:非加密端口:110) SMTP服务器地址:smtp.aliyun.com( ...

随机推荐

  1. Spring源码加载过程图解(一)

    最近看了一下Spring源码加载的简装版本,为了更好的理解,所以在绘图的基础上,进行了一些总结.(图画是为了理解和便于记忆Spring架构) Spring的核心是IOC(控制反转)和AOP(面向切面编 ...

  2. spring 4.0+quartz2.2 实现持久化

    最近在搭建框架 用到quartz持久化这块 查了一些文档  如下配置即可. 这里是quartz官方提供配置步骤 http://www.quartz-scheduler.org/ Quartz包含三个抽 ...

  3. 新浪微博Oauth2.0授权 获取Access Token

    新浪微博开放平台提供了丰富的API接口,利用这些接口,开发者能够开发出独具特色的微博应用.但是,大部分接口都需要用户授权给应用,应用利用授权得到的Access Token来调用相应的接口来获取内容. ...

  4. tornado 之 异步非阻塞

    异步非阻塞 1.基本使用 装饰器 + Future 从而实现Tornado的异步非阻塞 import tornado.web import tornado.ioloop from tornado im ...

  5. 笔记-TCPCLIENT

    ]; private void ReceiveMessage() { try { tcpClient = );//创建TcpClient对象实例 } catch (Exception le) { } ...

  6. Keepalived 资源监控

    简介: 作为一个高可用集群软件,Keepalived 没有 Heartbeat .RHCS 等专业的高可用集群软件功能强大,它不能够实现集群资源的托管,也不能实现对集群中运行服务的监控,好在 Keep ...

  7. 返回一个可用的名称如1_4.txt

    );     MessageBox.Show(tt); }

  8. Uniform & Attribute & Varying

    [Uniform & Attribute & Varying] 顶点着色器的输入变量用关键字“attribute”来限定. 片段着色器的输入变量(它和顶点着色器的输出变量相对应)用关键 ...

  9. Application.LoadLevel & Object.DontDestroyOnLoad

    [Application.LoadLevel] 只有在File->Build Setting中设置了的按钮才能被加载. 当level加载完成后,MonoBehaviour.OnLevelWasL ...

  10. VUE+WebPack前端游戏设计:实现物体的拖拽动态特效