ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python处理eml格式的邮件

2021-11-02 14:58:45  阅读:148  来源: 互联网

标签:__ emailcontent python eml content print email 邮件 Subject


对于数据进行读取

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/2/29/029 22:03
# @Author : H
# @File : getEmailHeader.py

import os
import re
from email.parser import Parser


def read_mail(path):
    if os.path.exists(path):
        with open(path) as fp:
            email = fp.read()
            return email
    else:
        print("file not exist!")


def emailInfo(emailpath):
    raw_email = read_mail(emailpath)  # 将邮件读到一个字符串里面
    print('emailpath : ', emailpath)
    emailcontent = Parser().parsestr(raw_email)  # 经过parsestr处理过后生成一个字典
    # for k,v in emailcontent.items():
    #     print(k,v)
    From = emailcontent['From']
    To = emailcontent['To']
    Subject = emailcontent['Subject']
    Date = emailcontent['Date']
    MessageID = emailcontent['Message-ID']
    XOriginatingIP = emailcontent['X-Originating-IP']
    if "<" in From:
        From = re.findall(".*<(.*)>.*", From)[0]
    if "<" in To:
        To = re.findall(".*<(.*)>.*", To)[0]

    print("From:\t", From)
    print("X-Originating-IP", XOriginatingIP)
    print("To:\t", To)
    print("Subject:\t", Subject)
    print("Message-ID:\t", MessageID)
    print("Date:\t", Date)

    # 循环信件中的每一个mime的数据块
    for par in emailcontent.walk():
        if not par.is_multipart():  # 这里要判断是否是multipart,是的话,里面的数据是无用的
            content = par.get_payload(decode=True)
            # print(str(content,"utf-8",errors='ignore'))
            print("content:\t", content.decode(encoding='gbk'))  # 解码出文本内容,直接输出来就可以了。


if __name__ == '__main__':
    email = "请求预推免系统解锁.eml"
    emailInfo(email)

_str = 'str'
print(type(_str))
# 输出为 <class 'str'>

_bytes = b'bytes'
print(type(_bytes))
# 输出为<class 'bytes'>

标签:__,emailcontent,python,eml,content,print,email,邮件,Subject
来源: https://blog.csdn.net/LEE18254290736/article/details/121100387

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有