email.encoders: 編碼器

原始碼: Lib/email/encoders.py


此模組是舊式 (Compat32)電子郵件 API 的一部分。 在新式 API 中,此功能由 set_content() 方法的 cte 形參提供。

此模組在 Python 3 中已棄用。此處提供的函式不應被顯式呼叫,因為 MIMEText 類會使用在該類例項化期間傳入的 _subtype_charset 值來設定內容型別和 CTE 標頭。

本節的其餘文字是該模組的原始文件。

當從頭開始建立 Message 物件時,您經常需要對載荷(payloads)進行編碼,以便透過相容的郵件伺服器進行傳輸。 對於包含二進位制資料的 image/*text/* 型別的訊息尤其如此。

email 包在其 encoders 模組中提供了一些方便的編碼器。 這些編碼器實際上被 MIMEAudioMIMEImage 類的建構函式用來提供預設編碼。 所有編碼器函式都只接受一個引數,即要編碼的訊息物件。 它們通常會提取載荷,對其進行編碼,然後將載荷重置為這個新編碼的值。 它們還應該適當地設定 Content-Transfer-Encoding 標頭。

請注意,這些函式對於多部分(multipart)訊息沒有意義。 它們必須應用於單個子部分,如果傳遞的訊息型別是 multipart,則會引發 TypeError

下面是提供的編碼函式:

email.encoders.encode_quopri(msg)

將有效載荷編碼為 quoted-printable 格式,並將 Content-Transfer-Encoding 標頭設定為 quoted-printable [1]。 當大部分有效載荷是普通可列印資料,但包含少量不可列印字元時,這是一種很好的編碼方式。

email.encoders.encode_base64(msg)

將有效載荷編碼為 base64 格式,並將 Content-Transfer-Encoding 標頭設定為 base64。 當大部分有效載荷是不可列印資料時,這是一種很好的編碼方式,因為它比 quoted-printable 更緊湊。 base64 編碼的缺點是它使文字變得不可讀。

email.encoders.encode_7or8bit(msg)

這實際上不會修改訊息的有效載荷,但它會根據有效載荷資料,將 Content-Transfer-Encoding 標頭適當地設定為 7bit8bit

email.encoders.encode_noop(msg)

這什麼都不做;它甚至不會設定 Content-Transfer-Encoding 標頭。

腳註