# -*- 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. php对业务平台接口调用的封装格式

    1.封装类示例:E:\html\pim\php_mcloud_cas\util\UmcPlatform.class.php <?php class Util_UmcPlatform{ const ...

  2. Oracle 创建表空间借鉴 保留,占版权留言告知

    /*分为四步 */ /*第1步:创建临时表空间 */ create temporarytablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i ...

  3. Latex编译后Yap查看报错Not all fonts could be loaded

    在用Latex写中文大论文时,编译后,用Yap查看DVI文件,打开时,Yap报错: "Not all fonts could be loaded. See 'File->Documen ...

  4. rabbitMQ消息队列1

    rabbitmq 消息队列 解耦 异步 优点:解决排队问题 缺点: 不能保证任务被及时的执行 应用场景:去哪儿, 同步 优点:保证任务被及时的执行 缺点:排队问题 大并发 Web nginx 1000 ...

  5. Spring实战之装配Bean

    1.1Spring配置的可选方案 Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系.但是,作为开发人员,你需要告诉Spring要创建哪些bean并且如何将其装配在一起.当 ...

  6. UML建模之时序图(Sequence Diagram)<转>

    UML建模之时序图(Sequence Diagram)   一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Acto ...

  7. Python的输入输出

    一:Python2.x版本下的输入输出 Python2.x 下的输入 1)raw_input 格式:result = raw_input("提示信息")功能:1)会等待用户输入内容 ...

  8. redis 批量删除键

    主题 为啥会有这篇文章呢? 在redis里我需要批量删除一些 "特殊" 的数据...这些特殊的数据用正常方法比较难删除...所以记录一下我的删除方法.. 背景与问题 我再用Spri ...

  9. Proxmox 安装 dsm 黑群 备忘

    备忘:Proxmox 虚拟机使用 E1000网卡(用Virlo找不到引导),直通数据硬盘 .     使用的引导文件是 DS918+_6.21-23824-1.04b.img 虚拟机启动使用第三项EX ...

  10. Superset安装

    Superset version 1.8.5     # Install superset   pip install cairocffi   pip install superset     yum ...