非常教程

Python参考手册

网络数据 | Internet Data

email.mime: Creating email and MIME objects from scratch

通常,通过将文件或某些文本传递给解析器来获取消息对象结构,解析器解析文本并返回根消息对象。但是,您也可以从头开始构建完整的消息结构,或者Message手动构建单个对象。实际上,您也可以使用现有的结构并添加新Message对象,将它们移动等。这为切割和切割MIME消息提供了一个非常方便的界面。

您可以通过创建Message实例,手动添加附件和所有适当的标题来创建新的对象结构。尽管如此,该email包提供了一些方便的子类来使事情变得更简单。

这里是类:

class email.mime.base.MIMEBase(_maintype, _subtype, **_params)

模块: email.mime.base

这是所有MIME特定子类的基类Message。通常你不会创建特定的实例MIMEBase,尽管你可以。MIMEBase主要作为更具体的MIME感知子类的便利基类提供。

_maintypeContent-Type主要类型(例如文本图像),_subtypeContent-Type次要类型(例如plaingif)。_params是一个参数键/值字典,并直接传递给Message.add_header

MIMEBase班总是增加了一个内容类型头(基于_maintype_subtype_params)和MIME-版本头(始终设置为1.0)。

class email.mime.nonmultipart.MIMENonMultipart

Module: email.mime.nonmultipart

它的一个子MIMEBase类,是不是多部分的 MIME消息的中间基类。这个类的主要目的是防止使用attach()只对多部分消息有意义的方法。如果attach()被调用,MultipartConversionError则会引发异常。

2.2.2版中的新功能。

class email.mime.multipart.MIMEMultipart([_subtype[, boundary[, _subparts[, _params]]]])

模块: email.mime.multipart

它的一个子MIMEBase类是多部分 MIME消息的中间基类。可选_subtype默认为混合,但可用于指定消息的子类型。甲内容类型的报头的multipart / _subtype将被添加到该消息对象。一个MIME-版头也将增加。

可选边界是多部分边界字符串。当None(缺省值)时,边界在需要时计算(例如,当消息被序列化时)。

_subparts是有效负载的一系列初始子部分。必须可以将此序列转换为列表。您始终可以使用该Message.attach方法将新的子部件附加到消息中。

Content-Type头部的其他参数取自关键字参数,或传递到_params参数(它是一个关键字字典)。

2.2.2版中的新功能。

class email.mime.application.MIMEApplication(_data[, _subtype[, _encoder[, **_params]]])

模块: email.mime.application

的一个子类MIMENonMultipart中,MIMEApplication类被用来表示主要类型的MIME消息对象应用_data是一个包含原始字节数据的字符串。可选_subtype指定MIME子类型,并默认为八位字节流

可选的_encoder是一个可调用的函数(即函数),它将执行传输数据的实际编码。这个可调用的参数有一个参数,这就是MIMEApplication实例。它应该使用get_payload()并将set_payload()有效载荷更改为编码形式。它还应该根据需要将任何Content-Transfer-Encoding或其他标题添加到消息对象。默认编码是base64。查看email.encoders模块以获取内置编码器的列表。

_params直接传递给基类构造函数。

2.5版本中的新功能。

class email.mime.audio.MIMEAudio(_audiodata[, _subtype[, _encoder[, **_params]]])

模块: email.mime.audio

一个子类MIMENonMultipart中,MIMEAudio类用于创建主要类型的MIME消息对象的音频_audiodata是一个包含原始音频数据的字符串。如果这个数据可以被标准Python模块解码sndhdr,那么子类型将自动包含在Content-Type头中。否则,您可以通过_subtype参数显式指定音频子类型。如果无法猜测次要类型,并且未提供_subtype,则会TypeError提出。

可选的_encoder是一个可调用的函数(即函数),它将执行用于传输的音频数据的实际编码。这个可调用的参数有一个参数,这就是MIMEAudio实例。它应该使用get_payload()并将set_payload()有效载荷更改为编码形式。它还应该根据需要将任何Content-Transfer-Encoding或其他标题添加到消息对象。默认编码是base64。查看email.encoders模块以获取内置编码器的列表。

_params直接传递给基类构造函数。

class email.mime.image.MIMEImage(_imagedata[, _subtype[, _encoder[, **_params]]])

模块: email.mime.image

的一个子类MIMENonMultipart中,MIMEImage类用于创建主要类型的MIME消息对象图像_imagedata是一个包含原始图像数据的字符串。如果这个数据可以被标准Python模块解码imghdr,那么子类型将自动包含在Content-Type头中。否则,您可以通过_subtype参数显式指定图像子类型。如果无法猜测次要类型,并且未提供_subtype,则会TypeError提出。

可选的_encoder是一个可调用的函数(即函数),它将执行传输图像数据的实际编码。这个可调用的参数有一个参数,这就是MIMEImage实例。它应该使用get_payload()并将set_payload()有效载荷更改为编码形式。它还应该根据需要将任何Content-Transfer-Encoding或其他标题添加到消息对象。默认编码是base64。查看email.encoders模块以获取内置编码器的列表。

_params直接传递给MIMEBase构造函数。

class email.mime.message.MIMEMessage(_msg[, _subtype])

模块: email.mime.message

的一个子类MIMENonMultipart中,MIMEMessage类用于创建主要类型的MIME对象消息_msg用作有效负载,并且必须是类Message(或其子类)的实例,否则TypeError会引发a。

可选_subtype设置消息的子类型; 它默认为rfc822

class email.mime.text.MIMEText(_text[, _subtype[, _charset]])

模块: email.mime.text

的一个子类MIMENonMultipart中,MIMEText类用于创建主要类型的MIME对象文本_text是有效负载的字符串。_subtype是次要类型,默认为plain_charset是文本的字符集,并作为参数传递给MIMENonMultipart构造函数; 它默认为us-ascii。如果_text是unicode,它是使用编码output_charset_CHARSET,否则它被原样使用。

在版本2.4中更改:先前弃用的_encoding参数已被删除。内容传输编码现在基于_charset参数隐式发生。

除非_charset参数明确设置为None,否则创建的MIMEText对象将同时具有带参数的Content-Type标头charsetContent-Transfer-Endcoding标头。这意味着set_payload即使在set_payload命令中传递了字符集,后续调用也不会导致编码的有效内容。您可以通过删除Content-Transfer-Encoding标题来“重置”此行为,之后一个set_payload调用将自动编码新的有效内容(并添加一个新的Content-Transfer-Encoding标头)。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法