email.encoders
: Kodare¶
Källkod: Lib/email/encoders.py
Denna modul är en del av det äldre (Compat32
) e-post-API:et. I det nya API:et tillhandahålls funktionaliteten av parametern cte i metoden set_content()
.
Denna modul är föråldrad i Python 3. De funktioner som tillhandahålls här bör inte anropas explicit eftersom MIMEText
-klassen ställer in innehållstypen och CTE-huvudet med hjälp av värdena _subtype och _charset som skickas under instantiering av den klassen.
Resterande text i detta avsnitt är modulens originaldokumentation.
När du skapar Message
-objekt från grunden behöver du ofta koda nyttolasten för transport genom kompatibla e-postservrar. Detta gäller särskilt för meddelanden av typen image/* och text/* som innehåller binära data.
Paketet email
tillhandahåller några praktiska kodare i modulen encoders
. Dessa kodare används faktiskt av klasskonstruktörerna MIMEAudio
och MIMEImage
för att tillhandahålla standardkodningar. Alla kodarfunktioner tar exakt ett argument, meddelandeobjektet som ska kodas. De extraherar vanligtvis nyttolasten, kodar den och återställer nyttolasten till det nya kodade värdet. De bör också ställa in Content-Transfer-Encoding-huvudet på lämpligt sätt.
Observera att dessa funktioner inte är meningsfulla för ett flerpartsmeddelande. De måste tillämpas på enskilda underdelar istället, och kommer att ge upphov till ett TypeError
om de skickas till ett meddelande vars typ är multipart.
Här är de kodningsfunktioner som tillhandahålls:
- email.encoders.encode_quopri(msg)¶
Kodar nyttolasten i formatet ”quoted-printable” och sätter rubriken Content-Transfer-Encoding till
quoted-printable
[1]. Det här är en bra kodning att använda när det mesta av innehållet är normala utskrivbara data, men innehåller några få tecken som inte kan skrivas ut.
- email.encoders.encode_base64(msg)¶
Kodar nyttolasten till base64-form och sätter rubriken Content-Transfer-Encoding till
base64
. Detta är en bra kodning att använda när det mesta av din nyttolast är data som inte kan skrivas ut eftersom det är en mer kompakt form än quoted-printable. Nackdelen med base64-kodning är att den gör texten icke-mänskligt läsbar.
- email.encoders.encode_7or8bit(msg)¶
Detta ändrar faktiskt inte meddelandets nyttolast, men det ställer in Content-Transfer-Encoding-rubriken till antingen
7bit
eller8bit
som lämpligt, baserat på nyttolastdata.
- email.encoders.encode_noop(msg)¶
Detta gör ingenting; det ställer inte ens in Content-Transfer-Encoding-rubriken.
Fotnoter