python email模块

python email模块

翻译官方文档

email模块

电子邮件包是一个用于管理电子邮件消息的库。它的特殊设计不用于向SMTP (RFC 2821)、NNTP或其他服务器发送任何电子邮件消息;这些是模块的函数,如smtplib和nntplib。电子邮件包尝试尽可能符合RFC,支持RFC 5233和RFC 6532,以及与mime相关的RFC 2045、RFC 2046、RFC 2047、RFC 2183和RFC 2231。

电子邮件包的总体结构可以分为三个主要组件,以及控制其他组件行为的第四个组件。

包的核心组件是表示电子邮件消息的“对象模型”。应用程序主要通过消息子模块中定义的对象模型接口与包进行交互。应用程序可以使用这个API询问关于现有电子邮件的问题,构造新的电子邮件,或者添加或删除本身使用相同对象模型接口的电子邮件子组件。也就是说,根据电子邮件消息及其MIME子组件的性质,电子邮件对象模型是所有提供EmailMessage API的对象的树结构。

包的另外两个主要组件是解析器和生成器。解析器获取电子邮件消息的序列化版本(字节流),并将其转换为EmailMessage对象树。生成器接收电子邮件消息并将其转换回序列化的字节流。(解析器和生成器也处理文本字符流,但不建议使用这种用法,因为很容易出现以某种方式无效的消息。)

控制组件是策略模块。每个电子邮件消息、每个生成器和每个解析器都有一个关联的策略对象来控制其行为。通常,应用程序只需要在创建EmailMessage时指定策略,方法是直接实例化EmailMessage来创建新电子邮件,或者使用解析器解析输入流。但是,当使用生成器序列化消息时,策略可以更改。例如,这允许从磁盘解析一般的电子邮件消息,但是在将其发送到电子邮件服务器时,可以使用标准SMTP设置对其进行序列化。

电子邮件包尽力向应用程序隐藏各种治理rfc的详细信息。从概念上讲,应用程序应该能够将电子邮件消息视为unicode文本和二进制附件的结构化树,而不必担心这些附件在序列化时是如何表示的。然而,在实践中,经常需要了解至少一些管理MIME消息及其结构的规则,特别是MIME“内容类型”的名称和性质,以及它们如何标识多部分文档。在大多数情况下,这些知识只应该在更复杂的应用程序中使用,即使在这种情况下,也应该只是高级结构,而不是那些结构如何表示的细节。由于MIME内容类型在现代互联网软件中被广泛使用(不仅仅是电子邮件),这对许多程序员来说将是一个熟悉的概念。

以下部分描述了电子邮件包的功能。我们从消息对象模型开始,它是应用程序将使用的主要接口,然后是解析器和生成器组件。然后介绍策略控制,它完成了对库的主要组件的处理。

接下来的三个部分将讨论包可能引发的异常和解析器可能检测到的缺陷(不符合rfc)。然后,我们将介绍headerregistry和contentmanager子组件,它们分别为更详细地操作头部和有效负载提供了工具。这两个组件都包含与消费和生成非平凡消息相关的特性,而且还记录了它们的可扩展性api,这将是高级应用程序感兴趣的。

下面是一组使用前面几节中介绍的api的基本部分的示例。

上面所示的是电子邮件包的现代(unicode友好)API。余下的部分,从Message类开始,将介绍遗留的compat32 API,它更直接地处理如何表示电子邮件消息的细节。compat32 API不会向应用程序隐藏rfc的细节,但是对于需要在该级别上操作的应用程序,它们可能是有用的工具。由于向后兼容性的原因,本文档还适用于仍然使用compat32 API的应用程序。

在3.6版更改:文档重组和重写,促进新的EmailMessage / EmailPolicy API。

Contents of the email package documentation:

Legacy API:

电子邮件包文档内容:
电子邮件。消息:表示电子邮件消息
电子邮件。解析器:解析电子邮件消息
实现FeedParser API
解析器API
额外的笔记
电子邮件。生成器:生成MIME文档
电子邮件。策略:策略对象
电子邮件。错误:异常和缺陷类
电子邮件。headerregistry:自定义头对象
电子邮件。contentmanager:管理MIME内容
Content Manager实例
电子邮件:示例
遗留API:
email.message。消息:使用compat32 API表示电子邮件消息
电子邮件。mime:从零开始创建电子邮件和mime对象
电子邮件。标题:国际化头
电子邮件。字符集:表示字符集
电子邮件。编码器:编码器
电子邮件。跑龙套:其他工具
电子邮件。迭代器:迭代器

原文地址:https://www.cnblogs.com/-wenli/p/10816927.html

时间: 2024-07-30 23:31:17

python email模块的相关文章

Python_使用smtplib和email模块发送邮件

[http://blog.csdn.net/menglei8625/article/details/7721746] SMTP (Simple Mail Transfer Protocol) 邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮件,不能用来接收邮件.大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议.SMTP协议的默认TCP端口号是25. SMTP协

Python3 使用smtplib和email模块发送邮件

SMTP (Simple Mail Transfer Protocol) 邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮件,不能用来接收邮件.大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议.SMTP协议的默认TCP端口号是25. SMTP协议的一个重要特点是它能够接力传送邮件.它工作在两种情况下:一是电子邮件从客户机传输到服务器:二是从某一个服务器传输到另

Python使用SMTP模块、email模块发送邮件

smtplib模块: 主要通过SMTP类与邮件系统进行交互.使用方法如下: 1.实例化一个SMTP对象: s = smtplib.SMTP(邮件服务地址,端口号) s = smtplib.SMTP_SSL(邮件服务地址,端口号) 2.登陆邮件,权限验证: s.login(用户名,密码) 3.发送邮件: s.sendmail(发件人邮箱,收件人邮箱,发送内容) 4.断开连接: s.close() email模块: email模块:支持发送的邮件内容为纯文本.HTML内容.图片.附件.email模块

python之模块ftplib(FTP协议的客户端)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(FTP协议的客户端) #需求:快速进行ftp上传 ,下载,查询文件 from ftplib import FTP ftp = FTP() #设置变量 timeout = 30 port = 21 ftp.connect('192.168.1.188',port,timeout) # 连接FTP服务器 ftp.login('UserName','888888') # 登录 p

python 常用模块之ConfigParser

在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在Python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser, Python ConfigParser模块解析的配置文件的格式比较象ini的配置文件格式 下面用实例说明如下: 配置文件db.conf [db] db_host=10.1.10.15 db_port=3306 db_user=root db_pass=59222999 连接数据程序如下: #!/usr/bin/en

python smtplib 模块发送邮件

发送邮件是大家经常碰到的,接下来看一下使用 python smtplib模块发送邮件,好了废话不多说,直接上代码: import smtplib,sys,os,timefrom email.mime.text import MIMEText import newreportdef send_mail(me,tomail,sub,content):     #要发给谁,可以发送多个人    mailto_list = [tomail+';']    #设置服务器,用户名.口令以及邮箱的后缀   

python之模块poplib之常见用法

# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块poplib之常见用法 ''' 所以,收取邮件分两步: 第一步:用poplib把邮件的原始文本下载到本地: 第二部:用email解析原始文本,还原为邮件对象. poplib.POP3(host,port,timeout):连接pop3服务器 poplib.POP3_SSL(): POP3.set_debuglevel(level):设置调试模式,可以看到与服务器的交互信息 POP3.ge

python 正则模块的使用(re)说明

python 正则模块的使用(re)说明 正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义.这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解.比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写成\\. 你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python字符串是 raw 字符串,所以里面的所有字符都不会被转义,比如r'\n'这个字

2如何安装Python第三方模块

如何安装Python第三方模块 Python官方为我们提供了第三方库,那么如何安装这些库呢? 安装第三方库有两种方式: 第一种就是使用python自带的仓库pip进安装 第二种就是使用源码进行安装 PIP方式安装 首先用yum安装python-pip软件包 [[email protected] ~]# yum  install python-pip 安装完成之后可以使用pip -V查看安装版本 [[email protected] ~]# pip -V pip 7.1.0 from /usr/l