本文实例讲述了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读取邮箱邮件_Python实现读取邮箱中的邮件功能示例【含文本及附件】相关推荐

  1. python手机号码替换代码_python实现的按要求生成手机号功能示例

    本文实例讲述了python实现的按要求生成手机号功能.分享给大家供大家参考,具体如下: 看到一个生成手机号的代码,于是自己优化了一下,可以支持按要求生成手机号. #!/usr/bin/python # ...

  2. python怎么建立画板_Python基于opencv实现的简单画板功能示例

    本文实例讲述了Python基于opencv实现的简单画板功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np drawing = False # true ...

  3. python绘制三维曲线图_Python基于matplotlib实现绘制三维图形功能示例

    本文实例讲述了Python基于matplotlib实现绘制三维图形功能.分享给大家供大家参考,具体如下: 代码一: # coding=utf-8 import numpy as np import m ...

  4. python图片旋转脚本_Python实现PS滤镜的旋转模糊功能示例

    本文实例讲述了Python实现PS滤镜的旋转模糊功能.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 滤镜中的旋转模糊,具体的算法原理和效果可以参考附录相关介绍.Python代码如 ...

  5. python爬取率_Python实现爬虫爬取NBA数据功能示例

    本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016-2017赛季常规赛至2017年1月7日的数据 ...

  6. python自动读取邮件_Python自动化读取邮件基础代码讲解

    大家好,在之前的文章中我们已经了解如何对自己的邮箱做一些代码操作前的基础配置,也学会了通过 yagmail 发送邮件.这篇文章将分别介绍两个很实用的收取及读取邮件的库:imbox 和 poplib,主 ...

  7. python登录qq邮箱爬邮件_python实现QQ邮箱发送邮件

    本文实例为大家共享了python实现QQ邮箱发送邮件的详细代码,供大家参考,详细内容如下 1.代码: #!/usr/bin/python # -*- coding: utf-8 -*- import ...

  8. javamail 解码 base64 html格式邮件_python使用QQ邮箱实现自动发送邮件

    最近用到Python自动发送邮件,主要就是三步,登录邮件.写邮件内容.发送,用到的库是 smtplib 和 email,直接使用pip安装即可 我使用的是QQ邮箱,首先需要设置QQ邮箱POP3/SMT ...

  9. python写邮箱系统_Python django实现简单的邮件系统发送邮件功能

    本文实例讲述了Python django实现简单的邮件系统发送邮件功能.分享给大家供大家参考,具体如下: django邮件系统 Django发送邮件官方中文文档 总结如下: 1.首先这份文档看三两遍是 ...

最新文章

  1. 顺序表-顺序表表示集合-差集(for + while ,不断遍历)
  2. python htmltestrunner报告_Python HTMLTestRunner可视化报告实现过程解析
  3. docker ps 列出容器 命令简介
  4. Python数据结构常见的八大排序算法(详细整理)
  5. (Docker实战) 第5篇:Centos7 拉取和部署搭建 NEXUS私服
  6. 大数据基础学习二:在VMware虚拟机上安装Ubuntu完整步骤及需要注意的问题(以VMware Workstation 15.1.0 Pro和Ubuntu18.04.3优麒麟版为例)
  7. 回归指令_用一条指令在新款 Mac 上找回经典的开机启动声
  8. 【Elasticsearch】es Elasticsearch HQ 介绍
  9. windows winrar 指令_Windows上WinRAR.exe命令行参数说明(转载) .
  10. 什么是云计算时代?学云计算能做什么呢
  11. linux 添加硬盘
  12. [bzoj4278][ONTAK2015]Tasowanie_后缀数组_贪心
  13. [Xcode]XcodeGhost问题的检查和验证
  14. 日本专利检索地址和专利号码问题
  15. java工具类-Java对象转换成Map
  16. ARKit玩起来 - AR预览唱片-史小川-专题视频课程
  17. [状压dp][BZOJ3717][PA2014]Pakowanie
  18. UReport2——一款报表引擎,提供基于网页的报表设计器
  19. 七进制转十进制java_java基础——Java进制转换
  20. python时间复杂度和空间复杂度是指,时间复杂度与空间复杂度

热门文章

  1. sqlplus普通用户登录oracle,Oracle学习笔记:sqlplus用户登录
  2. Vijos 1303 导弹拦截(LIS+Dilworth定理)
  3. MySQL导入大批Excel数据
  4. blocked by cors policy about CORS-RFC1918
  5. 【ros/ros2】LCN及ros2节点的LCN改写
  6. 王爽老师汇编语言第四版:实验九 根据材料编程
  7. swing中播放音频文件,封装成类,完美应用
  8. 线性代数学习笔记(八)——矩阵概念
  9. 狼人杀(bug有点多哦请大家见谅)(*^_^*)
  10. 汽车方向盘助力转向器如何接线_方向盘突然变重?千万不要忽视,很可能是这几个地方出问题了!...