email.errors: Exception and Defect classes

Πηγαίος κώδικας: Lib/email/errors.py


Οι εξής κλάσεις εξαιρέσεων ορίζονται στο module email.errors:

exception email.errors.MessageError

Αυτή είναι η βασική κλάση για όλες τις εξαιρέσεις που μπορεί να κάνει raise το module email. Παράγεται από την τυπική κλάση Exception και δεν ορίζει επιπλέον μεθόδους.

exception email.errors.MessageParseError

Αυτή είναι η βασική κλάση για τις εξαιρέσεις που γίνονται raise από την κλάση Parser. Κληρονομεί από την MessageError. Αυτή η κλάση χρησιμοποιείται επίσης εσωτερικά από τον αναλυτή που χρησιμοποιείται από το headerregistry.

exception email.errors.HeaderParseError

Γίνεται raise κάτω από ορισμένες συνθήκες σφάλματος κατά την ανάλυση των κεφαλίδων RFC 5322 ενός μηνύματος, αυτή η κλάση προέρχεται από την MessageParseError. Η μέθοδος set_boundary() θα κάνει raise αυτό το σφάλμα αν ο τύπος περιεχομένου είναι άγνωστος όταν καλείται η μέθοδος. Η Header μπορεί να κάνει raise αυτό το σφάλμα για ορισμένα σφάλματα αποκωδικοποίησης base64, καθώς και όταν επιχειρείται η δημιουργία μιας κεφαλίδας που φαίνεται να περιέχει ενσωματωμένη κεφαλίδα (δηλαδή υπάρχει μια γραμμή συνέχειας που δεν έχει προηγούμενο κενό διάστημα και μοιάζει με κεφαλίδα).

exception email.errors.BoundaryError

Έχει καταργηθεί και δεν χρησιμοποιείται πλέον.

exception email.errors.MultipartConversionError

Raised when a payload is added to a Message object using add_payload(), but the payload is already a scalar and the message’s Content-Type main type is not either multipart or missing. MultipartConversionError multiply inherits from MessageError and the built-in TypeError.

Since Message.add_payload() is deprecated, this exception is rarely raised in practice. However the exception may also be raised if the attach() method is called on an instance of a class derived from MIMENonMultipart (e.g. MIMEImage).

exception email.errors.HeaderWriteError

Γίνεται raise όταν παρουσιάζεται σφάλμα όταν το generator εξάγει κεφαλίδες.

Ακολουθεί η λίστα με τα ελαττώματα που μπορεί να εντοπίσει η FeedParser κατά την ανάλυση των μηνυμάτων. Σημειώστε ότι τα ελαττώματα προστίθενται στο μήνυμα όπου βρέθηκε το πρόβλημα, οπότε για παράδειγμα, εάν ένα μήνυμα που είναι ένθετο μέσα σε ένα multipart/alternative είχε μια παραμορφωμένη κεφαλίδα, αυτό το ένθετο αντικείμενο μηνύματος θα είχε ένα ελάττωμα, αλλά τα μηνύματα που το περιέχουν όχι.

Όλες οι κλάσεις ελαττωμάτων είναι υποκλάσεις της email.errors.MessageDefect.

  • NoBoundaryInMultipartDefect – A message claimed to be a multipart, but had no boundary parameter.

  • StartBoundaryNotFoundDefect – The start boundary claimed in the Content-Type header was never found.

  • CloseBoundaryNotFoundDefect – A start boundary was found, but no corresponding close boundary was ever found.

    Νέο στην έκδοση 3.3.

  • FirstHeaderLineIsContinuationDefect – The message had a continuation line as its first header line.

  • MisplacedEnvelopeHeaderDefect - A «Unix From» header was found in the middle of a header block.

  • MissingHeaderBodySeparatorDefect - A line was found while parsing headers that had no leading white space but contained no “:”. Parsing continues assuming that the line represents the first line of the body.

    Νέο στην έκδοση 3.3.

  • MalformedHeaderDefect – A header was found that was missing a colon, or was otherwise malformed.

    Αποσύρθηκε στην έκδοση 3.3: Αυτό το σφάλμα δεν έχει χρησιμοποιηθεί εδώ και πολλές εκδόσεις της Python.

  • MultipartInvariantViolationDefect – A message claimed to be a multipart, but no subparts were found. Note that when a message has this defect, its is_multipart() method may return False even though its content type claims to be multipart.

  • InvalidBase64PaddingDefect – When decoding a block of base64 encoded bytes, the padding was not correct. Enough padding is added to perform the decode, but the resulting decoded bytes may be invalid.

  • InvalidBase64CharactersDefect – When decoding a block of base64 encoded bytes, characters outside the base64 alphabet were encountered. The characters are ignored, but the resulting decoded bytes may be invalid.

  • InvalidBase64LengthDefect – When decoding a block of base64 encoded bytes, the number of non-padding base64 characters was invalid (1 more than a multiple of 4). The encoded block was kept as-is.