email.utils: Miscellaneous utilities
email.utils
模块中提供了几个有用的实用程序:
email.utils.quote(str)
将str中的反斜杠替换为两个反斜杠的新字符串,并将双引号替换为反斜杠双引号。
email.utils.unquote(str)
返回一个不带引号的str的新字符串。如果str结束并以双引号开头,则会被剥离。同样,如果str结束并以尖括号开始,它们将被剥离。
email.utils.parseaddr(address)
解析地址 - 应该是某个包含地址的字段(例如“ 收件人”或“ 抄送”)的值,并将其解析为其真实姓名和电子邮件地址部分。返回该信息的元组,除非解析失败,在这种情况下('', '')
返回2元组。
email.utils.formataddr(pair)
与此相反parseaddr()
,这需要表单的2元组(realname, email_address)
并返回适合于To或Cc标题的字符串值。如果pair的第一个元素为false,则第二个元素将不加修改地返回。
email.utils.getaddresses(fieldvalues)
此方法返回由返回的表单的2元组列表parseaddr()
。fieldvalues是可能返回的一系列头字段值Message.get_all
。下面是一个简单的例子,它可以获取消息的所有收件人:
from email.utils import getaddresses
tos = 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)
email.utils.parsedate_tz(date)
执行与之相同的功能parsedate()
,但返回一个None
或一个10元组; 前9个元素组成一个可以直接传递的元组,time.mktime()
第十个元素是日期时区与UTC(这是格林威治标准时间的正式期限)[1]的偏移量。如果输入字符串没有时区,则返回的元组的最后一个元素是None
。请注意,结果元组的索引6,7和8不可用。
email.utils.mktime_tz(tuple)
将返回的10元组parsedate_tz()
转换为UTC时间戳(自Epoch以来的秒数)。如果元组中的时区项目是None
假设当地时间。
email.utils.formatdate([timeval[, localtime][, usegmt]])
根据RFC 2822返回日期字符串,例如:
Fri, 09 Nov 2001 01:08:47 -0000
可选的timeval如果给定的是作为接受一个浮点时间值time.gmtime()
和time.localtime()
,否则就使用当前时间。
可选本地时间是一个标志,当True
,解释timeval中,并返回相对于本地时区而不是UTC,适当服用夏令时考虑的日期。默认值False
是使用UTC。
可选的usegmt是一个标志,当True
输出带有时区的日期字符串作为ascii字符串时GMT
,而不是数字-0000
。这对于某些协议(如HTTP)是必需的。这仅适用于本地时间False
。默认是False
。
2.4版本中的新功能。
email.utils.make_msgid([idstring])
返回适合符合RFC 2822的Message-ID标头的字符串。可选的idstring(如果给出)是用于加强消息ID唯一性的字符串。
email.utils.decode_rfc2231(s)
解码字符串小号根据RFC 2231。
email.utils.encode_rfc2231(s[, charset[, language]])
编码字符串小号根据RFC 2231。可选的字符集和语言(如果给出)是要使用的字符集名称和语言名称。如果两者都没有给出,则s按原样返回。如果给出字符集但语言不是,则使用空字符串对语言进行编码。
email.utils.collapse_rfc2231_value(value[, errors[, fallback_charset]])
为了方便起见,如果传递的值collapse_rfc2231_value()
不是元组,它应该是一个字符串,并且不加引号就返回。
email.utils.decode_params(params)
根据RFC 2231解码参数列表。params是包含表单元素的2元组序列(content-type, string-value)
。
在版本2.4中更改:该dump_address_pair()
功能已被删除; formataddr()
改为使用。
在版本2.4中更改:该decode()
功能已被删除; Header.decode_header
改为使用该方法。
在版本2.4中更改:该encode()
功能已被删除; Header.encode
改为使用该方法。
注
1 | 请注意,时区偏移的符号与同一时区的time.timezone变量的符号相反; 后一个变量遵循POSIX标准,而该模块遵循RFC 2822。 |
---|
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com