email.encoders: Encoders

Quellcode: Lib/email/encoders.py


Dieses Modul ist Teil der Legacy-API (Compat32) für E-Mails. In der neuen API wird die Funktionalität durch den Parameter cte der Methode set_content() bereitgestellt.

Dieses Modul ist in Python 3 veraltet. Die hier bereitgestellten Funktionen sollten nicht explizit aufgerufen werden, da die Klasse MIMEText den Content-Type und den CTE-Header anhand der Werte _subtype und _charset setzt, die während der Instanziierung dieser Klasse übergeben werden.

Der restliche Text in diesem Abschnitt ist die ursprüngliche Dokumentation des Moduls.

Beim Erstellen von Message-Objekten von Grund auf müssen die Payloads oft für den Transport über konforme Mailserver kodiert werden. Dies gilt insbesondere für Nachrichten vom Typ image/* und text/*, die Binärdaten enthalten.

Das Paket email bietet einige praktische Encoder in seinem Modul encoders. Diese Encoder werden tatsächlich von den Konstruktoren der Klassen MIMEAudio und MIMEImage verwendet, um Standardkodierungen bereitzustellen. Alle Encoder-Funktionen nehmen genau ein Argument entgegen, das zu kodierende Nachrichtenobjekt. Sie extrahieren normalerweise die Payload, kodieren sie und setzen die Payload auf diesen neu kodierten Wert zurück. Sie sollten auch den Header Content-Transfer-Encoding entsprechend setzen.

Beachten Sie, dass diese Funktionen für eine Multipart-Nachricht nicht sinnvoll sind. Sie müssen stattdessen auf einzelne Unterteile angewendet werden und lösen einen TypeError aus, wenn eine Nachricht mit dem Typ Multipart übergeben wird.

Hier sind die bereitgestellten Kodierungsfunktionen

email.encoders.encode_quopri(msg)

Kodiert die Payload im Quoted-Printable-Format und setzt den Header Content-Transfer-Encoding auf quoted-printable [1]. Dies ist eine gute Kodierung, wenn ein Großteil Ihrer Payload normale druckbare Daten enthält, aber nur wenige nicht druckbare Zeichen.

email.encoders.encode_base64(msg)

Kodiert die Payload im Base64-Format und setzt den Header Content-Transfer-Encoding auf base64. Dies ist eine gute Kodierung, wenn ein Großteil Ihrer Payload nicht druckbare Daten enthält, da sie kompakter als Quoted-Printable ist. Der Nachteil der Base64-Kodierung ist, dass sie den Text nicht menschenlesbar macht.

email.encoders.encode_7or8bit(msg)

Dies modifiziert die Payload der Nachricht nicht tatsächlich, setzt aber den Header Content-Transfer-Encoding entsprechend auf 7bit oder 8bit, basierend auf den Payload-Daten.

email.encoders.encode_noop(msg)

Dies tut nichts; es setzt nicht einmal den Header Content-Transfer-Encoding.

Fußnoten