Python实现读取邮箱中的邮件功能示例【含文本及附件】
发布时间 - 2026-01-11 02:39:32 点击率:次本文实例讲述了Python实现读取邮箱中的邮件功能。分享给大家供大家参考,具体如下:
#-*- encoding: utf-8 -*-
import sys
import locale
import poplib
from email import parser
import email
import string
# 确定运行环境的encoding
__g_codeset = sys.getdefaultencoding()
if "ascii"==__g_codeset:
__g_codeset = locale.getdefaultlocale()[1]
#
def object2double(obj):
if(obj==None or obj==""):
return 0
else:
return float(obj)
#end if
#
def utf8_to_mbs(s):
return s.decode("utf-8").encode(__g_codeset)
#
def mbs_to_utf8(s):
return s.decode(__g_codeset).encode("utf-8")
#
host = 'pop.exmail.qq.com'
username = 'user1@xxxx.cn'
password = 'password'
pop_conn = poplib.POP3_SSL(host)
pop_conn.user(username)
pop_conn.pass_(password)
#Get messages from server:
# 获得邮件
messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]
#print messages
#print "--------------------------------------------------"
# Concat message pieces:
messages = ["\n".join(mssg[1]) for mssg in messages]
#print messages
#Parse message intom an email object:
# 分析
messages = [parser.Parser().parsestr(mssg) for mssg in messages]
i = 0
for index in range(0,len(messages)):
message = messages[index];
i = i + 1;
subject = message.get('subject')
h = email.Header.Header(subject)
dh = email.Header.decode_header(h)
subject = unicode(dh[0][0], dh[0][1]).encode('utf8')
mailName = "mail%d.%s" % (i, subject)
f = open('%d.log'%(i), 'w');
print >> f, "Date: ", message["Date"]
print >> f, "From: ", email.utils.parseaddr(message.get('from'))[1]
print >> f, "To: ", email.utils.parseaddr(message.get('to'))[1]
print >> f, "Subject: ", subject
print >> f, "Data: "
j = 0
for part in message.walk():
j = j + 1
fileName = part.get_filename()
contentType = part.get_content_type()
mycode=part.get_content_charset();
# 保存附件
if fileName:
data = part.get_payload(decode=True)
h = email.Header.Header(fileName)
dh = email.Header.decode_header(h)
fname = dh[0][0]
encodeStr = dh[0][1]
if encodeStr != None:
fname = fname.decode(encodeStr, mycode)
#end if
fEx = open("%s"%(fname), 'wb')
fEx.write(data)
fEx.close()
elif contentType == 'text/plain':# or contentType == 'text/html':
#保存正文
data = part.get_payload(decode=True)
content=str(data);
if mycode=='gb2312':
content= mbs_to_utf8(content)
#end if
nPos = content.find('降息')
print("nPos is %d"%(nPos))
print >> f, data
#end if
#end for
f.close()
#end for
pop_conn.quit()
更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
# Python
# 读取
# 邮箱
# 邮件
# Python编程实现及时获取新邮件的方法示例
# 在Python中使用poplib模块收取邮件的教程
# 简单实现python收发邮件功能
# Python实现发送与接收邮件的方法详解
# Python获取邮件地址的方法
# 详解python实现读取邮件数据并下载附件的实例
# Python读取指定日期邮件的实例
# 进阶
# 操作技巧
# 运行环境
# 相关内容
# 数据结构
# 给大家
# 更多关于
# 所述
# 程序设计
# 使用技巧
# 编程技巧
# 讲述了
# username
# qq
# exmail
# cn
# xxxx
# encode
# decode
# utf8_to_mbs
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
php 三元运算符实例详细介绍
Laravel API资源类怎么用_Laravel API Resource数据转换
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
如何制作一个表白网站视频,关于勇敢表白的小标题?
JavaScript如何实现音频处理_Web Audio API如何工作?
Laravel如何生成URL和重定向?(路由助手函数)
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel模型事件有哪些_Laravel Model Event生命周期详解
网站建设保证美观性,需要考虑的几点问题!
Laravel如何实现本地化和多语言支持?(i18n教程)
用v-html解决Vue.js渲染中html标签不被解析的问题
深入理解Android中的xmlns:tools属性
Laravel怎么判断请求类型_Laravel Request isMethod用法
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何打造高效商业网站?建站目的决定转化率
,交易猫的商品怎么发布到网站上去?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何用PHP工具快速搭建高效网站?
Python面向对象测试方法_mock解析【教程】
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何在七牛云存储上搭建网站并设置自定义域名?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
公司网站制作价格怎么算,公司办个官网需要多少钱?
北京的网站制作公司有哪些,哪个视频网站最好?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Firefox Developer Edition开发者版本入口
JS实现鼠标移上去显示图片或微信二维码
简单实现Android验证码
Laravel Fortify是什么,和Jetstream有什么关系
三星网站视频制作教程下载,三星w23网页如何全屏?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
php结合redis实现高并发下的抢购、秒杀功能的实例
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
javascript读取文本节点方法小结

