# -*- 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. Cobalt strike 第二节生成报告

    0x00前言: 上一节我们说了怎么连接到服务器 0x01生成报告: 首先打开Cobalt Strike 点击Cobalt Strike -> Preferences Preferences Pe ...

  2. 1.docker学习之简介

    什么是Docker Docker是一个开源的应用容器引擎.通俗来说:所谓开源,就是指Docker是开放源代码的,比如用户可以免费使用该源代码, 并在该源代码的基础上自由修改或传播.所谓引擎,指的是程序 ...

  3. 第十篇 before_request after_request

    Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__na ...

  4. leetcode260

    public class Solution { public int[] SingleNumber(int[] nums) { var dic = new Dictionary<int, int ...

  5. mysql 锁 事务隔离级别

    主题 最近在看mysql相关的书籍.实验了一些内容.分享一下,主要是关于事务隔离级别(read-committed和repeatable-read)和锁相关的. 很多网上文章上都能搜索到 read-c ...

  6. java多线程-慎重使用volatile关键字

    Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而 ...

  7. ArcGIS js api开发环境配置

    转自https://blog.csdn.net/lovecarpenter/article/details/53713481#3%E9%85%8D%E7%BD%AEarcgis-api%E5%AE%9 ...

  8. php设置错误,错误记录

    //设置错误级别. error_reporting(E_ALL);  //显示所有错误 error_reporting(E_ALL&~E_NOTICE);  //显示所有错误但不显示提示级别的 ...

  9. 推荐一个好用的sql版本控制和美化工具SQLToolbelt

    SQL Toolbelt含Red Gate公司目前出品的所有SQL Server工具和新版本.也就是说,当你使用SQL Server数据库工作时,您可以很方便的获得您所需要的一套强大的工具,包括SQL ...

  10. java 线程的几个注解

    Java并发编程中,用到了一些专门为并发编程准备的 Annotation. 主要包括三类: 类 Annotation(注解) 就像名字一样,这些注解是针对类的.主有要以下三个: @ThreadSafe ...