email.encoders: 編碼器

原始碼: Lib/email/encoders.py


此模組是舊版 (Compat32) email API 的一部分。在新 API 中,該功能由 set_content() 方法的 cte 引數提供。

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

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

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

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

請注意,這些函式對於多部分訊息沒有意義。它們必須應用於各個子部分,並且如果傳遞的訊息型別是多部分訊息,則會引發 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 標頭。

腳註