Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python读取邮箱中的邮件,含文本,附

Python读取邮箱中的邮件,含文本,附

作者头像
py3study
发布于 2020-01-08 08:01:38
发布于 2020-01-08 08:01:38
2.4K01
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:1
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#-*- 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()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python实现邮件接收、附件下载
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了。
周小董
2019/03/25
6.4K0
利用Python imaplib和email模块 读取邮件文本内容及附件内容
python使用imap接收邮件的过程探索 https://www.cnblogs.com/yhlx/archive/2013/03/22/2975817.html #! encoding:utf8 ''' 环境: Win10 64位 Python 2.7.5 参考: http://www.pythonclub.org/python-network-application/email-format http://blog.sina.com.cn/s/blog_4deeda2501016eyf.htm
用户1214487
2018/07/04
3.2K0
python高阶教程-使用imap接收邮箱的附件(中文字符编码与MIME)
我们常常要使用邮件来接收报名表、作业等内容,然后统计出已交和未交的人数,通知没有发邮件的注意时间。 这是一个很繁琐的流程,而如果能够用程序自动化地完成该过程,无疑会大大加快工作进度。
羽翰尘
2019/11/20
7.4K0
python自动下载邮件附件
继上一次的 群聊机器人开发 之后的工作流程再优化,上次研究完群聊机器人之后,开发了三个机器人替我处理表格并自动发出去。其中有一项工作的数据源来源于邮件,还需要我自己手动下载,放入指定位置才可以处理!虽然比之前方便了很多,但是还是想更方便些。(自己淘汰自己的路上越走越远o(╥﹏╥)o),于是想着能不能用代码下载,研究了半天还终于整出来了,而且还是两种方法!
诡途
2022/01/07
2.6K0
python自动下载邮件附件
Python 进阶(三):邮件的发送与收取
SMTP 全称 Simple Mail Transfer Protocol,中文译为简单邮件传输协议,它能跨越网络传输邮件,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现进程与其他网络之间的邮件传输。
Python小二
2020/08/18
8770
Python 进阶(三):邮件的发送与收取
Python自动化读取邮件基础代码讲解
之前的文章中我们也提到了,基础配置需要打开 POP3/SMTP/IMAP,针对不同邮箱有不同的操作,并以网易 163 邮箱和 QQ 邮箱 举例说明,如果你不熟悉,可以查看Python发送邮件基础代码讲解
刘早起
2021/02/05
4.9K0
python之POP3收取邮件
版权声明:欢迎交流,菲宇运维!
菲宇
2019/06/13
2.4K0
POP3收取邮件
SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3。 Python内置一个poplib模块,实现了POP3协议,可以直接用来收邮件。 注意到POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP协议很像,SMTP发送的也是经过编码后的一大段文本。 要把POP3收取的文本变成可以阅读的邮件,还需要用email模块提供的各种类来解析原始文本,变成可阅
xiangzhihong
2018/01/26
2.5K0
Python 15.2 POP3 收取邮
收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的就是POP3协议。
py3study
2020/01/06
9370
python解析邮件
前面我们讲到的接收邮件中,接收到的邮件把它打印出来,会发现是一堆很复杂的东西,很难阅读。这就需要我们去解析它
灯珑LoGin
2022/10/31
7220
python开发_email_读取邮件头信息
===========================================
Hongten
2018/09/13
2K0
python开发_email_读取邮件头信息
31.2企业级开发进阶3.2:接收电子邮件引入解析需要的模块解析邮件内容引入需要的模块定义解析邮件内容的函数decode_header解码操作函数
上一节内容中,我们通过Python进行了电子邮件发送功能的处理 本节内容内容主要讲解接收邮件功能的处理
大牧莫邪
2018/08/27
8610
使用python的email、smtplib、poplib模块收发邮件
https://blog.csdn.net/weixin_35955795/article/details/52881044
用户1214487
2018/07/31
1.1K0
教你用Python自动发送和收取邮件的方法
这篇文章主要介绍了Python自动发送和收取邮件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着老师来一起学习学习吧
python学习教程
2020/08/31
1.7K0
教你用Python自动发送和收取邮件的方法
利用Python进行远程关电脑
import os import time import poplib import email import smtplib from email.header import decode_header from email.mime.text import MIMEText from email.header import Header # 读取Email,获取Email主题 def getEmailSubject(): read = poplib.POP3('pop.163.com')
Aidol
2020/07/23
6950
基于人体红外热释电检测的树莓派邮件报警器
只要标题够唬人,你们就会点进来,内容什么的其实都无所谓,无聊已经逼迫帅气的我做出了这种东西?!
聪明的瓦肯人
2020/02/26
1.6K0
基于人体红外热释电检测的树莓派邮件报警器
【python实现向日葵控制软件功能】手机远程控制电脑
本篇博客实现的功能是基于python来完成的自动收发邮件从而实现手机远程控制电脑的功能。
淼学派对
2023/10/14
3950
【python实现向日葵控制软件功能】手机远程控制电脑
Python接收邮件的几种方式
工作中,我们基本上都用过电子邮件的客户端,比如说 OutLook,Foxmail,从配置项可以知道,SMTP 协议用于发送邮件,POP3 和 IMAP 协议用于接收邮件。其实很多编程语言都有这类协议的实现,Python 自然也不例外,标准库 smtplib、poplib、imaplib 是对应协议的实现。
somenzz
2021/07/01
3K0
Python接收邮件的几种方式
Python 如何提取邮件内容
今天分享的文章主要讲解如何从邮件里面提取用户返回的线上问题内容并做解析,通过拿到的数据信息进行分析整理,然后进行封装请求禅道里的接口进行提交,提交请求过程中会对数据库中是否存在进行一次判断处理,如果没有存在的就提交,如果数据库中存在就不用再提交,基于这个思路来看下今天的分享。
Wu_Candy
2022/07/04
1.1K0
selenium实操-自动化登录
今天写一下python加selenium自动化登录,包括获取邮箱验证码和普通验证码两种。
怪盗LYL
2022/06/13
2.1K0
selenium实操-自动化登录
推荐阅读
相关推荐
python实现邮件接收、附件下载
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验