email.encoders
: 編碼器¶
此模組是舊式 (Compat32
)電子郵件 API 的一部分。 在新式 API 中,此功能由 set_content()
方法的 cte 形參提供。
此模組在 Python 3 中已棄用。此處提供的函式不應被顯式呼叫,因為 MIMEText
類會使用在該類例項化期間傳入的 _subtype 和 _charset 值來設定內容型別和 CTE 標頭。
本節的其餘文字是該模組的原始文件。
當從頭開始建立 Message
物件時,您經常需要對載荷(payloads)進行編碼,以便透過相容的郵件伺服器進行傳輸。 對於包含二進位制資料的 image/* 和 text/* 型別的訊息尤其如此。
email
包在其 encoders
模組中提供了一些方便的編碼器。 這些編碼器實際上被 MIMEAudio
和 MIMEImage
類的建構函式用來提供預設編碼。 所有編碼器函式都只接受一個引數,即要編碼的訊息物件。 它們通常會提取載荷,對其進行編碼,然後將載荷重置為這個新編碼的值。 它們還應該適當地設定 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 標頭適當地設定為
7bit
或8bit
。
- email.encoders.encode_noop(msg)¶
這什麼都不做;它甚至不會設定 Content-Transfer-Encoding 標頭。
腳註