email.encoders
: 編碼器?
此模塊是舊版 (Compat32
) email API 的組成部分。 在新版 API 中將由 set_content()
方法的 cte 形參提供該功能。
此模塊在 Python 3 中已棄用。 這里提供的函數(shù)不應被顯式地調(diào)用,因為 MIMEText
類會在類實例化期間使用 _subtype 和 _charset 值來設置內(nèi)容類型和 CTE 標頭。
本節(jié)中的其余文本是此模塊的原始文檔。
當創(chuàng)建全新的 Message
對象時,你經(jīng)常需要對載荷編碼以便通過兼容的郵件服務器進行傳輸。 對于包含二進制數(shù)據(jù)的 image/* 和 text/* 類型的消息來說尤其如此。
email
包在其 encoders
模塊中提供了一些方便的編碼器。 這些編碼器實際上由 MIMEAudio
和 MIMEImage
類構造器所使用以提供默認編碼格式。 所有編碼器函數(shù)都只接受一個參數(shù),即要編碼的消息對象。 它們通常會提取有效載荷,對其進行編碼,并將載荷重置為這種新編碼的值。 它們還應當相應地設置 Content-Transfer-Encoding 標頭。
請注意,這些函數(shù)對于多段消息沒有意義。 它們必須應用到各個單獨的段上面,而不是整體。如果直接傳遞一個多段類型的消息,會產(chǎn)生一個 TypeError
錯誤。
下面是提供的編碼函數(shù):
- email.encoders.encode_quopri(msg)?
將有效數(shù)據(jù)編碼為經(jīng)轉換的可打印形式,并將 Content-Transfer-Encoding 標頭設置為
quoted-printable
1。 當大多數(shù)實際的數(shù)據(jù)是普通的可打印數(shù)據(jù)但包含少量不可打印的字符時,這是一個很好的編碼。
- email.encoders.encode_base64(msg)?
將有效載荷編碼為 base64 形式,并將 Content-Transfer-Encoding 標頭設為
base64
。 當你的載荷主要包含不可打印數(shù)據(jù)時這是一種很好用的編碼格式,因為它比 quoted-printable 更緊湊。 base64 編碼格式的缺點是它會使文本變成人類不可讀的形式。
- email.encoders.encode_7or8bit(msg)?
此函數(shù)并不實際改變消息的有效載荷,但它會基于載荷數(shù)據(jù)將 Content-Transfer-Encoding 標頭相應地設為
7bit
或8bit
。
- email.encoders.encode_noop(msg)?
此函數(shù)什么都不會做;它甚至不會設置 Content-Transfer-Encoding 標頭。
備注
- 1
請注意使用
encode_quopri()
編碼格式還會對數(shù)據(jù)中的所有制表符和空格符進行編碼。