python获取outlook导出eml文件中附件代码

background:
离职,公司邮箱是一直从浏览器来访问的,所以邮件在本地保存不了。如果没有附件的话可以直接用word打开。但是有附件就会打开出错。
同时导出也只能是eml格式
其实里边就是文本信息,邮件发送也是这些文本。
所以就很简单了

复用了以前 的代码

#!/usr/bin/env python
#encoding=utf-8
"""
Copyright (c) 2012 ekse <[email protected]>
All rights reserved.
"""

import email, os
from optparse import OptionParser

class work:
    # class to get attachement
    def __init__(self, directory = ‘./‘):
        self.directory = directory
        self.body = ‘‘

    def getAtt(self):
        # traverse the directory
        for root, dirs, files in os.walk(self.directory):
            for fl in files:
                routine = self.directory + r‘\\‘ + fl
                print routine
                filepointer = open(routine, ‘r‘)
                # read file as email
                for line in filepointer:
                    self.body += line
                mail = email.message_from_string(self.body)
                # walk the stream, get attachement
                for part in mail.walk():
                    filename = email.Header.decode_header                            (part.get_filename())[0][0]
                    att_path = os.path.join(self.directory, filename)
                    outfile = open(att_path, ‘wb‘)
                    if part.get_payload(decode = True):
                        outfile.write(part.get_payload(decode = True))
                    outfile.close()

def main():
    # use OptionParser to privide opt
    usage = "usage: %prog [options] arg"
    parser = OptionParser(usage)
    parser.add_option("-d", "--dir", dest="directory",
                            help="processing directory")
    opt, args = parser.parse_args()
    p = work(opt.directory)
    p.getAtt()

if __name__ == ‘__main__‘:
    main()
时间: 2024-10-12 16:42:46

python获取outlook导出eml文件中附件代码的相关文章

如何调用另一个python文件中的代码

如何调用另一个python文件中的代码 无论我们选择用何种语言进行程序设计时,都不可能只有一个文件(除了"hello world"),通常情况下,我们都需要在一个文件中调用另外一个文件的函数呀数据等等,总之要操作其他文件中的代码,在java中,只要在同一个文件目录下,我们就不需要通过import导入,但是在Python中,我们就需要通过import来进行导入,这样我们才能应用其他文件中定义的函数和数据等代码. 对于刚接触python的我们,这是我们需要掌握的. 下面就以两个文件为例,例

备份和恢复(或叫导入导出)按钮中的代码及后台控制器中的代码案例

//备份(导出)按钮中的代码 function(button, e) { var grid = this.getView(); var recs = grid.getSelectionModel().getSelection(); var url='/Pc/XiTongPublic/HeChaYaoDian1Backup'; window.open(util.urlFillAll(url),'_blank'); } //备份(导出)VS中的代码 /// </summary> [HttpGet]

从后台获取数据导出excel文件

做oa系统的都会有这个要求:根据数据导入excel文件.只需要点击一下,你所需要的数据就直接生成一个excel文件了,是不是很方便? 是的没错,很方便,但是对于我们来说是一件很痛苦的事情,所以说一下我的经历.因为是第一次写excel文件导出,所以代码可能写的很烂,不喜勿喷. 有什么意见也可以直接留言哦,希望与大家一起交流 第一步,先在pom.xml文件依赖jar包: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> &

Python选择多个本地文件以附件发送到Email

Python Email 发送多个附件 起因 邮箱是最普遍的"跨平台"的信息储存节点.应能抓取网页.或者附件发送本地文件,以便各个终端共享信息. 最终实现自动抓取页面推送到邮箱:将笔记.日程以附件形式发送到邮箱. 工具和准备 编辑器:Sublime 3 语言:Python v2.7.11 OS:Windows 7 64位 网络搜索 "Pythonemail 发送附件" 得到基础模板.修改调试得到如下代码: # -*- coding: utf-8 -*- # Pyth

如何导出SHP文件中的点坐标?(ArcGIS10)

行政区域坐标,网上流传较广的版本是包括海域的,假如你仅仅想要把陆地边界绘出,那么怎么办呢? 现在讲一下用arcgis 10从shp线.面文件中获取对应区域的坐标呢?(点图层忽略第一步) 首先用在arcmap中添加相应图层,然后开始操作1.地理数据——arctoolbox——数据管理工具——要素——要素折点转点(当然也可以根据不同需求选择其他项,比如要素转点)选择“输入要素”,然后“输出要素”选择存放路径然后随意命名(记住目录及名字),点类型选“ALl”. 这样线.面图层就转化为点图层了,不过属性

python struct.pack() 二进制文件,文件中打包二进制数据的存储与解析

学习Python的过程中,遇到一个问题,在<Python学习手册>(也就是<learning python>)中,元组.文件及其他章节里,关于处理二进制文件里,有这么一段代码的处理: >>>F=open('data.bin','wb') >>>import struct >>>data=struct.pack('i4sh',7,'spam',8) >>>data b'\x00\x00\x00\x07spam\x

Mac 如何导出ipa文件中Assets.car包中的切图

在之前 获取 AppStore 中 应用 的 IPA 包文件(Mac OS 13+)中获取到应用的 IPA 包,可以取出应用的部分图片(如 Logo),如果项目工程中把图片添加到 Assets.xcassets 中的话,只能在包中看到 Assets.car 文件,这时需要把里面的图片资源取出来. 在 Github 上 cartool是专门解决这个问题的开源工具,下载,使用 Xcode 打开工程,添加如下配置: 运行工程,就可以看到控制台有输出 Log 在指定文件中就会有解压过的图片资源. 原文地

oracle/mysql 将查询数据导出到文件中

一.将oracle 查询的数据导入到一个文本文件中方法一 :通过sql developer 工具导出到xls表中方法二:通过客户端sqlplus 到一个临时txt文件中再处理着重讲方法二(在使用场景下方便.快捷)SQL>spool d:sqlbak.txt;SQL>select * from table where a>x;SQL>spool off;这样刚查询的数据就好在d盘下的 sqlbak.txt 文件中,linux下同理: spool /tmp/sqlbak.txt 二.

python文本处理---计算fasta文件中不同氨基酸的数目

#::!/usr/bin/python3 #-*- coding:utf-8 -*- #计算fasta文件中各个氨基酸的含量 import sys args=sys.argv f=open(args[1], 'r') fw=open('out.txt', 'w') line=f.read() txt=''.join(line.split('\n')[1:]) #可以得到氨基酸序列 #构建了各个氨基酸和含量的字典 ##注意collections模块中Counter的用法 from collecti