返回顶部
首页 > 资讯 > 后端开发 > Python >python开发_email_读取邮件头
  • 799
分享到

python开发_email_读取邮件头

邮件python 2023-01-31 02:01:21 799人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

在python中的类库中,python自带了email模块。在email模块中,我们可以email类库实现对邮件的读取,和邮件的发送等功能。本文先来谈谈在python中,利用email模块读取邮件头.....先来看看一封百度云发给我的邮件:

python中的类库中,python自带了email模块。

email模块中,我们可以email类库实现对邮件的读取,和邮件的发送等功能。

本文先来谈谈在python中,利用email模块读取邮件头.....

先来看看一封百度云发给我的邮件:

下面是邮件的具体信息:

复制代码

Date: Tue, 30 Jul 2013 16:53:17 +0800
Received: from db-sysnoc-mailrelay3.db01.baidu (unknown [123.125.66.194])
    by newmx38.qq.com (NewMx) with SMTP id 
    for <hongtenzone@foxmail.com>; Tue, 30 Jul 2013 16:53:16 +0800
X-QQ-SSF: 00500000010000010rF000C1040000r
X-QQ-mid: mx38t1375174396thkz17254
Received: from mail-out.sys.baidu.com (cq01-passport-mis00.cq01.baidu.com [10.46.78.11])
    by db-sysnoc-mailrelay3.db01.baidu.com (Postfix) with SMTP id 515EF798060
    for <hongtenzone@foxmail.com>; Tue, 30 Jul 2013 16:53:16 +0800 (CST)
From: =?UTF-8?B?YmFpZHU=?=<passport@baidu.com>
To: =?UTF-8?B?aG9uZ3RlbnpvbmVAZm94bWFpbC5jb20=?=<hongtenzone@foxmail.com>
Subject: =?UTF-8?B?55m+5bqm5LqR6YCB5L2gMTAwR+WtmOWCqOepuumXtOmAmuefpQ==?=
MIME-Version: 1.0
Content-Type: text/html;
    charset="UTF-8"
Content-Transfer-Encoding: base64

PFA+PEEgaHJlZj0iaHR0cDovL3l1bi5iYWlkdS5jb20vMTAwPz1tYWlsMiI+PElNRyBzdHlsZT0i
RElTUExBWTogYmxvY2s7IE1BUkdJTi1MRUZUOiBhdXRvOyBNQVJHSU4tUklHSFQ6IGF1dG8iIHNy
Yz0iaHR0cDovL3Bhbi5iYWlkdS5jb20vcmVzL3N0YXRpYy9pbWFnZXMvY21zL3DvcmxkLTEwMC5q
cGCiPjwvQt48Rk9OVCBmYWNLPeW5vOWchj48Rk9OVCBjb2xvcj0jZmYwMDAwIHNpemU9Mz48Rk9O
VCBjb2xvcj0jMDAwMDAwPkhvbmdfdGVuX3pvbmXvvIzmgqjnmoTnmb7luqbkupHlrrnph488Rk9O
VCBjb2xvcj0jZmYwMDAwPjxTVFJPTkc+5Y2z5bCG5Yiw5pyfPC9TVFJPTkc+PC9GT05UPu+8jOiv
t+WwveW/q+e7reacn++8jOS7peWFjeW9seWTjeaCqOWkh+S7veWunei0teaVsOaNruOAgjxTVFJP
Tkc+PEZPTlQgY29sb3I9I2ZmMDAwMD4xMDBH57ut5pyf5Y+q6ZyAMC4y5YWD77yM5Y+y5LiK5pyA
5L2O5Lu3PC9GT05UPjwvU1RST05HPu+8jOa0u+WKqOWcsOWdGo+8mjwvRk9OVD48L0ZPTlQ+PEZP
TlQgY29sb3I9I2ZmMDAwMCBzaXplPTM+PEEgaHJlZj0iaHR0cDovL3l1bi5iYWlkdS5jb20vMTAw
Pz1tYWlsMiI+aHR0cDovL3l1bi5iYWlkdS5jb20vMTAwPC9BPjwvQT48L0ZPTlQ+PC9GT05UPjxG
T05UIHNpemU9Mz48Rk9OVCBjb2xvcj0jZmYwMDAwPiA8L0ZPTlQ+PC9GT05UPjwvUD4NPGJyPjxQ
PjxGT05UIHNpemU9Mj48Rk9OVCBzdHlsZT0iQkFDS0dST1VORC1DT0xPUjogI2ZmZmYwMCIgY29s
b3I9I2ZmMDAwMCBmYWNlPeWui+S9kz7vvIjmnKzkvJjmg6Dnu63mnJ/kuLrmgqjkuJPkuqvnibnm
nYPvvIzor7fli7/ovazlj5HjgIHlpJbms4TvvIzosKLosKLmlK/mjIHvvIHvvIk8L0ZPTlQ+PC9G
T05UPjwvUD4=

复制代码

下面是我做的demo:

运行效果:

#python mail

import os
import email

#邮件文件的存放位置
PATH = ''

#读取文件
def read_mail(path):
    if os.path.exists(path):
        with open(path) as fp:
            for line in fp:
                print(line)
    else:
        not_find_file()

#打开一个文件   
def open_file(path):
    if os.path.exists(path):
        return open(path, 'r')
    else:
        not_find_file()

#创建消息对象
def get_message(path):
    if os.path.exists(path):
        fp = open_file(path)
        return email.message_from_file(fp)
    else:
       not_find_file()

#获取subject对象
def get_subject(path):
    if os.path.exists(path):
        message = get_message(path)
        return message.get('subject')
    else:
        not_find_file()

#解析subject对象
def parse_subject(msg):
    if msg != None:
        subject = msg.get('subject')
        #header = email.Header.Header(subject)
        #decode_h = email.Header.decode_header(header)
        #return decode_h[0][0]
    else:
        empty_obj()

#获取发件人邮箱   
def get_from(msg):
    if msg != None:
        return email.utils.parseaddr(msg.get("from"))[1]
    else:
        empty_obj()

#获取收件人邮箱
def get_to(msg):
    if msg != None:
        return email.utils.parseaddr(msg.get('to'))[1]
    else:
        empty_obj()


#获取邮件的生成时间
def get_date(msg):
    if msg != None:
        #return email.utils.parseaddr(msg.get('Date'))
        date_str=email.Header.decode_header(msg['Date'])[0][0]
        t=time.localtime(time.mktime(time.strptime(date_str,"%a, %d %b %Y %H:%M:%S +0800")))
        date_str=time.strftime('%Y-%m-%d %H:%M:%S',t)
        return date_str
    else:
        empty_obj()

#获取邮件的生成版本
def get_mime_version(msg):
    if msg != None:
        return email.utils.parseaddr(msg.get('mime-version'))[1]
    else:
        empty_obj()

#获取邮件的文本类型
def get_content_type(msg):
    if msg != None:
        return email.utils.parseaddr(msg.get('content-type'))[1]
    else:
        empty_obj()

#获取邮件的邮件的id
def get_message_id(msg):
    if msg != None:
        return email.utils.parseaddr(msg.get('message-id'))[1]
    else:
        empty_obj()


#文件不存在
def not_find_file():
    print('文件不存在!')

#msg is empty
def empty_obj():
    print('msg is empty!')
    
def main():
    global PATH
    PATH = 'E:\\test_mail.eml'
    print(PATH)
    msg = get_message(PATH)
    #print(msg)
    print('#' * 50)
    print('subject:{}'.fORMat(get_subject(PATH)))
    print('#' * 50)
    print(parse_subject(msg))
    print('#' * 50)
    print('from:{}'.format(get_from(msg)))
    print('to:{}'.format(get_to(msg)))
    print('date:{}'.format(get_date(msg)))
    print('mime-version:{}'.format(get_mime_version(msg)))
    print('content-type:{}'.format(get_content_type(msg)))
    print('message-id:{}'.format(get_message_id(msg)))

if __name__ == '__main__':
    main()

 


--结束END--

本文标题: python开发_email_读取邮件头

本文链接: https://lsjlt.com/news/185981.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python开发_email_读取邮件头
    在python中的类库中,python自带了email模块。在email模块中,我们可以email类库实现对邮件的读取,和邮件的发送等功能。本文先来谈谈在python中,利用email模块读取邮件头.....先来看看一封百度云发给我的邮件:...
    99+
    2023-01-31
    邮件 python
  • Python读取邮箱中的邮件,含文本,附
    #-*- encoding: utf-8 -*- import sys import locale import poplib from email import parser import email import string # ...
    99+
    2023-01-31
    文本 邮箱 邮件
  • Python怎么读取Outlook电子邮件
    这篇文章主要介绍“Python怎么读取Outlook电子邮件”,在日常操作中,相信很多人在Python怎么读取Outlook电子邮件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么读取Outlo...
    99+
    2023-06-27
  • Python中怎么自动化读取邮件
    这篇文章将为大家详细讲解有关Python中怎么自动化读取邮件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、poplib库poplib 模块提供了 poplib.POP3 和 poplib...
    99+
    2023-06-15
  • python读取邮件的方法是什么
    Python读取邮件的方法可以使用以下两个库实现:1. `imaplib`:这个库提供了IMAP(Internet Mail Acc...
    99+
    2023-09-07
    python
  • Python中怎么读取Outlook的电子邮件
    这篇文章给大家介绍Python中怎么读取Outlook的电子邮件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先你需要导入 win32com.client,为此你需要安装 pywin32:pip insta...
    99+
    2023-06-17
  • Python 发邮件
    普通邮件[root@localhost checksalt]# cat python_email.py  #!/usr/bin/python # -*- coding: utf-8 -*- import sys def smtp(title...
    99+
    2023-01-31
    发邮件 Python
  • python 如何自动监控新邮件并读取
    本篇内容主要讲解“python 如何自动监控新邮件并读取”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python 如何自动监控新邮件并读取”吧!我就废话不多说了,大家还是直接看代码吧~#zma...
    99+
    2023-06-07
  • python 邮件发送
    环境:python2.7 1 #coding:utf-8 2 from __future__ import unicode_literals 3 __author__ = 'crista' 4 5 import smtpli...
    99+
    2023-01-30
    邮件发送 python
  • python发送邮件
    python通过smtp发送qq邮件 import smtplib from email.mime.text import MIMEText from email.header import Header """ 1》测试邮件发送 ...
    99+
    2023-01-30
    发送邮件 python
  • Python+sendEmail发邮件
    Linux用户常用sendmail发送电子邮件,当您看了本文后可能会改用sendEmail去发送邮件了,呵呵。1 下载sendEmail       sendEmail有Linux和windows版本软件包,依据自己的平台选择下载好了htt...
    99+
    2023-01-31
    发邮件 Python sendEmail
  • python 发送邮件
    #!/usr/bin/env python#coding:utf-8 import smtplib,time,stringfrom email.mime.text import MIMEText SMTPserver = 'smtp.exm...
    99+
    2023-01-31
    发送邮件 python
  • Java实现读取163邮箱,qq邮箱的邮件内容
    通过使用java mail来实现读取163邮箱,qq邮箱的邮件内容。 1.代码实现 创建springboot项目,引入依赖包 <!--mail--> &...
    99+
    2024-04-02
  • python SMTP邮件发送
    本例使用的时python2.7环境,python3的操作应该也是差不多的。 需要用到smtplib和email两个包。 发送文本类型的邮件 下面看个发送文本邮件的例子(使用网易163的SMTP): # -*- coding: UTF-8 ...
    99+
    2023-01-31
    邮件发送 python SMTP
  • Python如何读取csv文件时添加表头/列名
    目录读取csv文件时添加表头/列名解决方法更改csv文件表头读取csv文件时添加表头/列名 有时,我们读取的csv文件数据时发现没有表头/列名,是因为Python读取csv文件数据本...
    99+
    2024-04-02
  • php读取邮件的方法是什么
    PHP读取邮件的方法有多种,以下是一些常用的方法: 使用 PHP 的 IMAP 函数库:PHP 提供了 IMAP 函数库,可以使用...
    99+
    2024-02-29
    php
  • python通过163邮箱发送邮件
    from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import sys impor...
    99+
    2023-01-31
    发送邮件 邮箱 python
  • python发送邮件和附件
    发送邮件的时候,需要发送人,收件人,和一台邮件服务器,这里使用python发送一个邮件,主要需要引入smtplib和email库。下面是源码,粘贴即可用: #!/usr/bin/env python3 # coding: utf-8 imp...
    99+
    2023-01-31
    发送邮件 附件 python
  • 【Python】Python读取CSV文件
    CSV文件是一种常见的数据存储格式,很多人在日常工作中需要使用Python处理CSV文件。Python提供了多种方法来读取CSV文件,包括使用标准库、第三方库和内置函数。本文将介绍多种Python读取...
    99+
    2023-09-12
    python pandas 数据分析
  • python学习——POP3收取邮件
    SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3。 Python内置一个poplib模块,实现了...
    99+
    2023-01-31
    邮件 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作