email.encoders: 編碼器?

源代碼: Lib/email/encoders.py


此模塊是舊版 (Compat32) email API 的組成部分。 在新版 API 中將由 set_content() 方法的 cte 形參提供該功能。

此模塊在 Python 3 中已棄用。 這里提供的函數不應被顯式地調用,因為 MIMEText 類(lèi)會(huì )在類(lèi)實(shí)例化期間使用 _subtype_charset 值來(lái)設置內容類(lèi)型和 CTE 標頭。

本節中的其余文本是此模塊的原始文檔。

當創(chuàng )建全新的 Message 對象時(shí),你經(jīng)常需要對載荷編碼以便通過(guò)兼容的郵件服務(wù)器進(jìn)行傳輸。 對于包含二進(jìn)制數據的 image/*text/* 類(lèi)型的消息來(lái)說(shuō)尤其如此。

email 包在其 encoders 模塊中提供了一些方便的編碼器。 這些編碼器實(shí)際上由 MIMEAudioMIMEImage 類(lèi)構造器所使用以提供默認編碼格式。 所有編碼器函數都只接受一個(gè)參數,即要編碼的消息對象。 它們通常會(huì )提取有效載荷,對其進(jìn)行編碼,并將載荷重置為這種新編碼的值。 它們還應當相應地設置 Content-Transfer-Encoding 標頭。

請注意,這些函數對于多段消息沒(méi)有意義。 它們必須應用到各個(gè)單獨的段上面,而不是整體。如果直接傳遞一個(gè)多段類(lèi)型的消息,會(huì )產(chǎn)生一個(gè) TypeError 錯誤。

下面是提供的編碼函數:

email.encoders.encode_quopri(msg)?

將有效數據編碼為經(jīng)轉換的可打印形式,并將 Content-Transfer-Encoding 標頭設置為 quoted-printable 1。 當大多數實(shí)際的數據是普通的可打印數據但包含少量不可打印的字符時(shí),這是一個(gè)很好的編碼。

email.encoders.encode_base64(msg)?

將有效載荷編碼為 base64 形式,并將 Content-Transfer-Encoding 標頭設為 base64。 當你的載荷主要包含不可打印數據時(shí)這是一種很好用的編碼格式,因為它比 quoted-printable 更緊湊。 base64 編碼格式的缺點(diǎn)是它會(huì )使文本變成人類(lèi)不可讀的形式。

email.encoders.encode_7or8bit(msg)?

此函數并不實(shí)際改變消息的有效載荷,但它會(huì )基于載荷數據將 Content-Transfer-Encoding 標頭相應地設為 7bit8bit。

email.encoders.encode_noop(msg)?

此函數什么都不會(huì )做;它甚至不會(huì )設置 Content-Transfer-Encoding 標頭。

備注

1

請注意使用 encode_quopri() 編碼格式還會(huì )對數據中的所有制表符和空格符進(jìn)行編碼。