email.errors
: Clases de excepción y defecto¶
Código fuente: Lib/email/errors.py
Las siguientes clases de excepción se definen en el módulo email.errors
:
- exception email.errors.MessageError¶
Esta es la clase base para todas las excepciones que el paquete
email
puede lanzar. Se deriva de la clase estándarException
y no define métodos adicionales.
- exception email.errors.MessageParseError¶
Esta es la clase base para las excepciones generadas por la clase
Parser
. Se deriva deMessageError
. Esta clase también es utilizada internamente por el analizador sintáctico utilizado porheaderregistry
.
- exception email.errors.HeaderParseError¶
Lanzada en algunas condiciones de error al analizar los encabezados RFC 5322 de un mensaje, esta clase se deriva de
MessageParseError
. El métodoset_boundary()
lanzará este error si el tipo de contenido es desconocido cuando se llama al método.Header
puede lanzar este error para ciertos errores de decodificación de base64, y cuando se intenta crear un encabezado que parece contener un encabezado incrustado (es decir, hay lo que se supone que es un línea de continuación que no tiene espacios en blanco iniciales y parece un encabezado).
- exception email.errors.BoundaryError¶
Deprecada y no utilizada actualmente.
- exception email.errors.MultipartConversionError¶
Se lanza cuando se agrega una carga útil (payload) a un objeto
Message
usandoadd_payload()
, pero la carga útil ya es un número escalar y el tipo principal del mensaje Content-Type no es multipart ni perdido (missing).MultipartConversionError
hereda al mismo tiempo deMessageError
y el incorporadoTypeError
.Dado que
Message.add_payload()
está en desuso, esta excepción rara vez se presenta en la práctica. Sin embargo, la excepción también se puede lanzar si se llama al métodoattach()
en una instancia de una clase derivada deMIMENonMultipart
(por ejemploMIMEImage
).
- exception email.errors.HeaderWriteError¶
Raised when an error occurs when the
generator
outputs headers.
- exception email.errors.MessageDefect¶
This is the base class for all defects found when parsing email messages. It is derived from
ValueError
.
- exception email.errors.HeaderDefect¶
This is the base class for all defects found when parsing email headers. It is derived from
MessageDefect
.
Aquí está la lista de defectos que FeedParser
puede encontrar mientras analiza mensajes. Tenga en cuenta que los defectos se agregan al mensaje donde se encontró el problema, por ejemplo, si un mensaje anidado dentro de un multipart/alternative tenía un encabezado mal formado, ese objeto de mensaje anidado tendría un defecto, pero el contenido los mensajes no lo harían.
Todas las clases de defectos se derivan de email.errors.MessageDefect
.
NoBoundaryInMultipartDefect
– Un mensaje que se dice que es multiparte, pero que no tiene el parámetro boundary.StartBoundaryNotFoundDefect
– El límite de inicio reclamado en el encabezado Content-Type nunca se encontró.CloseBoundaryNotFoundDefect
– Se encontró un límite de inicio, pero nunca se encontró un límite cercano correspondiente.Nuevo en la versión 3.3.
FirstHeaderLineIsContinuationDefect
– El mensaje tenía una línea de continuación como primera línea de encabezado.MisplacedEnvelopeHeaderDefect
– Se encontró un encabezado «Unix From» en medio de un bloque de encabezado.MissingHeaderBodySeparatorDefect
- Se encontró una línea al analizar sintácticamente los encabezados que no tenían espacios en blanco iniciales pero que no contenían “:”. El análisis continúa asumiendo que la línea representa la primera línea del cuerpo.Nuevo en la versión 3.3.
MalformedHeaderDefect
– Se encontró un encabezado al que le faltaban dos puntos o tenía un formato incorrecto.Obsoleto desde la versión 3.3: Este defecto no se ha utilizado por varias versiones de Python.
MultipartInvariantViolationDefect
– Un mensaje que se afirma ser multipart, pero no se encontraron subpartes. Tenga en cuenta que cuando un mensaje tiene este defecto, su métodois_multipart()
puede retornarFalse
aunque su tipo de contenido afirma ser multipart.InvalidBase64PaddingDefect
– Al decodificar un bloque de bytes codificados en base64, el relleno no era correcto. Se agrega suficiente relleno (padding) para realizar la decodificación, pero los bytes decodificados resultantes pueden no ser válidos.InvalidBase64CharactersDefect
– Al decodificar un bloque de bytes codificados en base64, se encontraron caracteres fuera del alfabeto base64. Los caracteres se ignoran, pero los bytes decodificados resultantes pueden no ser válidos.InvalidBase64LengthDefect
– Al decodificar un bloque de bytes codificados en base64, el número de caracteres base64 sin relleno no era válido (1 más que un múltiplo de 4). El bloque codificado se mantuvo tal cual.InvalidDateDefect
– Al decodificar una fecha no válida o un campo no parseable. El valor original se mantiene tal cual.