用python获取邮件内容比较简单,直接用现成的imap和pop3包即可,但是有时候邮件的内容不是plainText而是html甚至是一个url链接,原本的操作流程是点击url获取内容(比如csv等等)。

我这边的需求是从html里的众多url中找到包含所需文件的url并将文件的内容保存到本地。

上代码:

# -*- encoding: utf-8 -*-

import getpass, email, sys

import base64

import datetime

import re

from imapclient import IMAPClient

import requests

import time

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

today = time.strftime("%Y-%m-%d")

today_s = str(time.strftime("%d-%b-%Y"))

#配置imap客户端

server = IMAPClient(host='***.com', ssl=True)

def func():

try:

server.login('***.com', '***')

except server.Error:

print('Could not log in')

sys.exit(1)

#选取收件箱 只读模式

select_info = server.select_folder('INBOX', readonly=True)

#在收件箱里按照时间和发件人来搜索过滤邮件

messages = server.search(['TEXT', '***.com', 'SINCE', today_s])

#获取邮件内容、结果为两部分邮件id和邮件内容

msgdict = server.fetch(messages, ['BODY.PEEK[]'])

for u_id, message in msgdict.items():

url = get_url(message)

get_text(url)

def get_url(message):

e = email.message_from_string(message['BODY[]']) # 生成Message类型

html = ''

#解析转码获取html

for part in e.walk():

html = part.get_payload(decode=True)

#正则获取html的url链接

pat = re.compile(r"y:

y = len(x)

url = x

return url

def get_yes():

today = datetime.date.today()

oneday = datetime.timedelta(days=1)

yesterday = today-oneday

return yesterday

def get_text(url):

#获取url的内容

f = requests.get(url)

#将url指向的文件内容写到本地

with open("./temp", "wb") as code:

code.write(f.content)

with open("./temp", "r") as code:

lines = code.readlines()

n = 3

while n < len(lines):

res = ''

ls = lines[n].strip('\n').split('\t')

if len(ls) > 1:

res += ls[0] + '\t'

res += ls[3].replace(",", "") + '\t'

yesterday = get_yes()

res += str(yesterday)

with open('data/' + today, "a") as f_res:

f_res.write(res.replace('\0', ""))

f_res.write('\n')

n += 1

if __name__ == '__main__':

func()

代码很简单,不过需要提前在邮箱打开imap客户端协议。

python 读取邮件内容_python获取邮件内容(邮件内容为html)相关推荐

  1. python读取数据库导出文件_Python 获取 datax 执行结果保存到数据库的方法

    执行 datax 作业,创建执行文件,在 crontab 中每天1点(下面有关系)执行: 其中 job_start 及 job_finish 这两行记录是自己添加的,为了方便识别出哪张表. #!/bi ...

  2. python读取图片分辨率_python获取网页中所有图片并筛选指定分辨率的方法

    压测时,图片太少,想着下载网页中的图片,然后过滤指定分辨率,但网页中指定分辨率的图片太少了(见下) 后使用格式工厂转换图片 import urllib.request # 导入urllib模块 imp ...

  3. python读取git日志_Python获取gitlab提交历史!

    工作中的场景,记录下来分享给大家. 需求 公司私有部署了gitlab保存公司代码,希望在发布系统中可以展示项目在gitlab的提交历史,供发布人员选择提交commit记录并构建对应的docker镜像. ...

  4. python读取mac地址_python - 获取MAC地址

    python - 获取MAC地址 我需要一种在运行时确定计算机MAC地址的跨平台方法. 对于Windows,可以使用'wmi'模块,我可以找到Linux下唯一的方法是运行ifconfig并在其输出中运 ...

  5. python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  6. python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  7. 使用Python读取网易邮箱大师客户端的所有邮件

    文章目录 1. 前言 2. 效果 3. 探究过程 3.1. 找到本地存储的数据库 3.2. 使用Python读取数据库 3.2.1. 代码 4. 探究结果 4.1. 函数 4.1.1. 找到特定邮~箱 ...

  8. 【Python】python读取doc、docx文件里的表格内容并存入excel中

    效果 先展示下基本的效果,首先我们只有一个doc文件,与python的代码: 我这里用的是doc的word文档,文档内表格如下: 通过python读取后打印: 我这里没有专门按照表格内往excel中写 ...

  9. python读取文件多行内容-Python读取文件、大文件和指定行内容的几种方法

    在使用python处理文本的时候,经常会需要读取文件的内容.如果文件比较小,那么直接使用open文件对象打开文件,再通过read()方法最为方便,这种方法就是把文件内容读出来后放到内存变量. read ...

  10. python xlwt追加内容_python 往excel中追加内容

    from xlrd import open_workbook from xlutils.copy import copy #在创建好的excel种追加新的数据 if __name__ == '__ma ...

最新文章

  1. R语言负二项分布函数Negative Binomial Distribution(dnbinom, pnbinom, qnbinom rnbinom )实战
  2. mysql约束_从零开始学 MySQL - SQL 约束分类
  3. 区块链不适用的若干场景
  4. 《c++语言导学》——3.5 建议
  5. Confluence 6 从外部目录中同步数据支持的目录类型
  6. 分享一个自己做的SpringMVC的PPT,由于比较忙只写了一些重要的部分
  7. 走进我的交易室04_成功交易的 3 个 M
  8. JAVA EE(简述)
  9. 1-1 二进制/源码/zip安装和升级
  10. java web 导出excel_javaweb导出excel表格
  11. CentOS6.5 安装Tomcat6
  12. 玲听 | 蚂蚁金服布局区块链核心3问
  13. 正则去掉首尾空格以及首尾的
  14. windows操作系统知识最全
  15. Autodesk Alias AutoStudio 2022.0.1 x64
  16. 火车站信号自动语音播报系统的设计
  17. 广州电信高级前端开发工程师笔试题及答案(国企面试题大全)
  18. 删除oracle数据锁,【总结】oracle恢复误删除数据,解除锁定的等sql语句
  19. 搭建git私有化仓库
  20. WCF RIA Services 概述

热门文章

  1. win10本地存储C盘空间大小与实际不符
  2. Windows系统中设置软件的开机自动启动
  3. PCBA老化测试是什么,老化测试标准是什么?
  4. HTML基础,CSS基础
  5. 打印技术之打印机状态监控
  6. 地平线余凯:电动车,卖点不是车而是「智能」
  7. 用php制作微信小程序,微信小程序 自己制作小组件
  8. 登录页面设置cookie,用户登录后,创建cookie保存用户信息
  9. 如何调整糟糕的生活状态
  10. 无人机与视觉结合项目