:其他实用程序 – – 电子邮件和MIME处理包(Python教程)(参考资料)
email.utils
:杂项实用程序
email.utils.
localtime
(dt=None)-
将本地时间作为知晓的日期时间对象返回。如果调用withoutarguments,则返回当前时间。否则dt参数应为
datetime
实例,并根据系统时区数据库转换为本地时区。如果dt是天真的(即dt.tzinfo
是None
),则假定是在当地时间。在这种情况下,isdst的正值或零值导致localtime
初步确定夏令时(例如,夏令时)是否(分别)在指定时间内有效。isdst的负值导致localtime
试图判断夏令时是否在指定的时间内有效.版本3.3 .
email.utils.
make_msgid
(idstring=None, domain=None)-
返回一个适合 RFC 2822 的字符串 – 符合Message-ID标题。可选的 idstring如果给定,则是一个用于加强消息id唯一性的字符串。可选的 domainifgiven在’@’之后提供了msgid的一部分。默认为本地主机名。通常不需要覆盖此默认值,但在某些情况下可能很有用,例如构建跨多个主机使用一致域名的分布式系统.
更改版本3.2:添加了domain关键字
其余功能是遗产的一部分(Compat32
)电子邮件API。没有必要直接使用这些新API,因为它们提供的解析和格式化是由新API的头解析机制自动完成的.
email.utils.
quote
(str)-
返回一个带有反斜杠的新字符串str替换为两个反斜杠,双引号替换为反斜杠 – 双引号
email.utils.
unquote
// (str)-
返回一个新的字符串是unquoted str。如果str结束并且用双引号开头,它们就会被剥离。同样,如果str结束并用尖括号开始,它们会被剥掉.
email.utils.
parseaddr
(address )-
解析地址 – 应该是某个包含地址的字段的值,如To或Cc – 组成realname和email address部分。返回该信息的元组,除非parsefails,在这种情况下是
("", "")
归来了
email.utils.
formataddr
(pair, charset=”utf-8″)-
的倒数
parseaddr()
,这需要一个2元组的形式(realname,email_address)
并返回适合To或Cc标题的字符串值。如果pair的第一个元素为false,则返回未修改的第二个元素.可选charset如果包含非ASCII字符,则将在 RFC 2047
realname
的realname
编码中使用的字符集。可以是str
或Charset
的实例。默认为utf-8
.改版3.3:添加了charset选项。
email.utils.
getaddresses
(fieldvalues)-
此方法返回
parseaddr()
.fieldvalues是一个由Message.get_all
返回的头字段值序列。这是一个简单的示例,它获取消息的所有收件人:from email.utils import getaddressestos = msg.get_all("to", [])ccs = msg.get_all("cc", [])resent_tos = msg.get_all("resent-to", [])resent_ccs = msg.get_all("resent-cc", [])all_recipients = getaddresses(tos + ccs + resent_tos + resent_ccs)
email.utils.
parsedate
(date)-
尝试根据 RFC 2822 中的规则解析日期。但是,有些邮件不遵循指定的格式,所以
parsedate()
在这种情况下尝试正确。date是一个包含 RFC 2822 日期的字符串,例如"Mon, 20 Nov 1995 19:12:08 -0500"
。如果成功解析日期,parsedate()
返回一个可以直接传递给time.mktime()
的9元组;除此以外None
将被退回。请注意,结果元组的索引6,7和8不可用.
email.utils.
parsedate_tz
(date)-
执行与
parsedate()
,但返回None
ora 10-tuple;前9个元素组成一个元组,可以直接传递给time.mktime()
,第十个是日期时区与UTC(这是格林威治标准时间的官方术语)的偏移量[1]。如果输入字符串没有时区,则返回的元组的最后一个元素是None
。请注意,结果元组的索引6,7和8不可用.
email.utils.
parsedate_to_datetime
(date)-
的倒数
format_datetime()
。执行与parsedate()
,但成功后返回datetime
。如果输入日期的时区为-0000
,则datetime
将是一个天真的datetime
如果日期符合RFC,则它将表示UTC时间,但没有指示日期来自的主题的实际来源时区。如果输入日期有任何其他有效的时区偏移,datetime
将知道datetime
与相应的timezone
tzinfo
.新版本3.3.
email.utils.
mktime_tz
(tuple)-
转10元组由
parsedate_tz()
到UTC时间戳(自纪元以来的秒数)。如果元组中的时区项是None
,假设当地时间.
email.utils.
formatdate
(timeval=None, localtime=False, usegmt=False)-
按 返回日期字符串RFC 2822 ,例如:
Fri, 09 Nov 2001 01:08:47 -0000
可选timeval如果给出的是
time.gmtime()
和time.localtime()
所接受的浮点时间值,否则使用当前时间可选localtime是
True
时的标志,解释timeval,并返回相对于当地时区而不是UTC的日期,正确考虑到节日时间。默认为False
表示UTC已被使用.可选usegmt是一个标志,当
True
时,输出一个日期字符串,其中timezone为ascii字符串GMT
,而不是数字-0000
。这对于某些协议(例如HTTP)是必需的。这只适用于localtime是False
。默认是False
.
email.utils.
format_datetime
(dt, usegmt=False)-
和
formatdate
一样,但输入是datetime
实例。如果它是一个天真的日期时间,它被假定为“UTC没有关于时间区域的信息”,而传统的-0000
用于时区。如果它是一个知道datetime
,那么使用数字时区偏移。如果它是一个偏移为零的知道时区,则usegmt可以设置为True
,在这种情况下使用字符串GMT
而不是numerictimezone偏移量。这提供了一种生成符合标准的HTTPdate标头的方法.新版本3.3.
email.utils.
encode_rfc2231
(s, charset=None, language=None)-
编码字符串s根据 RFC 2231 。可选的 charset和language,如果给出的是要使用的字符集名称和语言名称。如果没有给出,//原来是s返回。如果给出charset但language不是,则使用language.
email.utils.
collapse_rfc2231_value
(value, errors=”replace”, fallback_charset=”us-ascii”)-
当头文件参数以 RFC 2231 格式编码时,
Message.get_param
可能会返回一个包含该元素的三元组字符集,语言和价值。collapse_rfc2231_value()
把它变成unicodestring。可选errors传递给errorsstr
方法的encode()
参数;它默认为"replace"
。可选的fallback_charset如果Python不知道 RFC 2231 标题中的那个,则指定要使用的字符集;它默认为"us-ascii"
.为方便起见,如果value传递到
collapse_rfc2231_value()
是不是元组,它应该是一个字符串,它是不引用的返回.
email.utils.
decode_params
(params)-
根据 RFC 2231 //解码参数列表. params是包含
(content-type, string-value)
.
脚注
[1] | 请注意,时区偏移的符号与time.timezone 同一时区的变量;后一个变量遵循POSIX标准,而该模块遵循 RFC 2822 . |
评论被关闭。