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
python读取pop3服务器邮件并且下载的更多相关文章
- python 读取Linux服务器上的文件
使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址).端口号.用户名及密码 hos ...
- python 利用pop3接收邮件并保存附件
def SaveAttach():# login the pop3 server ,retrive the new mails ,and download the attachments dstdir ...
- 五十七 POP3收取邮件
SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python ...
- SMTP协议及POP3协议-邮件发送和接收原理(转)
本文转自https://blog.csdn.net/qq_15646957/article/details/52544099 感谢作者 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 ...
- Python学习笔记(四十八)POP3收取邮件
收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python内置一个poplib模块,实现了POP3协 ...
- 使用C#和OpenPop.dll开发读取POP3邮件程序
制作一个ASP.NET MVC4论坛项目,该项目需要将以往十多年的Mail List(邮件列表)内容都导入到新的论坛中,因此需要能够将邮件的标题.发布时间.发布人及邮件内容导入到论坛的数据库内..Ne ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- [源码]Python简易http服务器(内网渗透大文件传输含下载命令)
Python简易http服务器源码 import SimpleHTTPServerimport SocketServerimport sysPORT = 80if len(sys.argv) != 2 ...
- 常用邮件SMTP POP3服务器地址大全
#阿里云邮箱(mail.aliyun.com): POP3服务器地址:pop3.aliyun.com(SSL加密端口:995:非加密端口:110) SMTP服务器地址:smtp.aliyun.com( ...
随机推荐
- Cobalt strike 第二节生成报告
0x00前言: 上一节我们说了怎么连接到服务器 0x01生成报告: 首先打开Cobalt Strike 点击Cobalt Strike -> Preferences Preferences Pe ...
- 1.docker学习之简介
什么是Docker Docker是一个开源的应用容器引擎.通俗来说:所谓开源,就是指Docker是开放源代码的,比如用户可以免费使用该源代码, 并在该源代码的基础上自由修改或传播.所谓引擎,指的是程序 ...
- 第十篇 before_request after_request
Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__na ...
- leetcode260
public class Solution { public int[] SingleNumber(int[] nums) { var dic = new Dictionary<int, int ...
- mysql 锁 事务隔离级别
主题 最近在看mysql相关的书籍.实验了一些内容.分享一下,主要是关于事务隔离级别(read-committed和repeatable-read)和锁相关的. 很多网上文章上都能搜索到 read-c ...
- java多线程-慎重使用volatile关键字
Java语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而 ...
- ArcGIS js api开发环境配置
转自https://blog.csdn.net/lovecarpenter/article/details/53713481#3%E9%85%8D%E7%BD%AEarcgis-api%E5%AE%9 ...
- php设置错误,错误记录
//设置错误级别. error_reporting(E_ALL); //显示所有错误 error_reporting(E_ALL&~E_NOTICE); //显示所有错误但不显示提示级别的 ...
- 推荐一个好用的sql版本控制和美化工具SQLToolbelt
SQL Toolbelt含Red Gate公司目前出品的所有SQL Server工具和新版本.也就是说,当你使用SQL Server数据库工作时,您可以很方便的获得您所需要的一套强大的工具,包括SQL ...
- java 线程的几个注解
Java并发编程中,用到了一些专门为并发编程准备的 Annotation. 主要包括三类: 类 Annotation(注解) 就像名字一样,这些注解是针对类的.主有要以下三个: @ThreadSafe ...