email.errors: کلاسهای استثنا و نقص (Defect)¶
کد منبع: Lib/email/errors.py
کلاسهای استثنای زیر در ماژول email.errors تعریف شدهاند:
- exception email.errors.MessageError¶
این کلاس، کلاس پایه برای تمام استثناهایی است که بستهی
emailمیتواند پرتاب کند. این کلاس از کلاس استانداردExceptionمشتق شده است و هیچ متد اضافهای تعریف نمیکند.
- exception email.errors.MessageParseError¶
این کلاس پایهای برای استثناهای پرتابشده توسط کلاس
Parserاست. این کلاس ازMessageErrorمشتق شده است. این کلاس همچنین بهصورت داخلی توسط پارسری کهheaderregistryاز آن استفاده میکند، به کار میرود.
- exception email.errors.HeaderParseError¶
این کلاس که تحت برخی شرایط خطا هنگام تجزیه سرآیندهای RFC 5322 یک پیام پرتاب میشود، از
MessageParseErrorمشتق شده است. متدset_boundary()این خطا را در صورتی پرتاب میکند که نوع محتوا هنگام فراخوانی متد ناشناخته باشد.Headerممکن است این خطا را برای برخی خطاهای کدگشایی base64، و همچنین هنگامی که تلاشی برای ایجاد سرآیندی انجام شود که به نظر میرسد حاوی یک سرآیند تعبیهشده است (یعنی سطری که قرار است خط ادامه باشد، فضای سفید پیشرو ندارد و شبیه یک سرآیند است)، پرتاب کند.
- exception email.errors.BoundaryError¶
منسوخ شده و دیگر استفاده نمیشود.
- exception email.errors.MultipartConversionError¶
در صورتی پرتاب میشود که متد
attach()روی نمونهای از کلاسی مشتقشده ازMIMENonMultipartفراخوانی شود (برای مثالMIMEImage).MultipartConversionErrorبهصورت چندگانه ازMessageErrorو استثنای توکارTypeErrorارث میبرد.
- exception email.errors.HeaderWriteError¶
هنگامی پرتاب میشود که هنگام خروجیدادن سرآیندها توسط
generatorخطایی رخ دهد.
- exception email.errors.MessageDefect¶
این کلاس، کلاس پایه برای تمام نقصهای یافتشده هنگام تجزیه پیامهای ایمیل است. این کلاس از
ValueErrorمشتق شده است.
- exception email.errors.HeaderDefect¶
این کلاس، کلاس پایه برای همه نقصهای یافتشده هنگام تجزیه سرآیندهای ایمیل است. این کلاس از
MessageDefectمشتق شده است.
در اینجا فهرستی از نقصهایی آمده است که FeedParser میتواند هنگام تجزیه پیامها پیدا کند. توجه داشته باشید که نقصها به پیامی اضافه میشوند که مشکل در آن یافت شده است؛ بنابراین برای مثال، اگر پیامی که درون یک multipart/alternative تودرتو شده است سرآیند با قالب نادرست داشته باشد، آن شیء پیام تودرتو نقص خواهد داشت، اما پیامهای حاوی آن نقص نخواهند داشت.
همهی کلاسهای نقص، زیرکلاسهای email.errors.MessageDefect هستند.
- exception email.errors.NoBoundaryInMultipartDefect¶
پیامی ادعا کرده بود که چندبخشی (multipart) است، اما پارامتر boundary نداشت.
- exception email.errors.StartBoundaryNotFoundDefect¶
مرز آغازین اعلامشده در سرآیند Content-Type هرگز پیدا نشد.
- exception email.errors.CloseBoundaryNotFoundDefect¶
یک مرز آغازین یافت شد، اما هرگز مرز پایانی متناظری یافت نشد.
اضافه شده در نسخهی 3.3.
- exception email.errors.FirstHeaderLineIsContinuationDefect¶
پیام دارای یک خط ادامه بهعنوان نخستین خط سرآیند خود بود.
- exception email.errors.MisplacedEnvelopeHeaderDefect¶
یک سرآیند «Unix From» در میانهی یک بلوک سرآیند یافت شد.
- exception email.errors.MissingHeaderBodySeparatorDefect¶
در هنگام تجزیه سرآیندها، سطری یافت شد که فضای سفید پیشرو نداشت اما شامل «:» نبود. تجزیه با این فرض ادامه مییابد که این خط، نشاندهنده نخستین خط بدنه است.
اضافه شده در نسخهی 3.3.
- exception email.errors.MalformedHeaderDefect¶
سرآیندی یافت شد که فاقد علامت دونقطه بود یا به شکل دیگری نامعتبر بود.
منسوخ شده از نسخهی 3.3: این نقص برای چندین نسخه پایتون استفاده نشده است.
- exception email.errors.MultipartInvariantViolationDefect¶
پیامی ادعا میکرد که multipart است، اما هیچ زیربخشی یافت نشد. توجه داشته باشید که هنگامی که پیامی این نقص را دارد، ممکن است متد
is_multipart()آنFalseرا برگرداند، حتی اگر نوع محتوای آن ادعا کند که multipart است.
- exception email.errors.InvalidBase64PaddingDefect¶
هنگام کدگشایی بلوکی از بایتهای کدگذاریشده با base64، پرکننده (padding) صحیح نبود. پرکنندهی کافی برای انجام کدگشایی اضافه میشود، اما بایتهای حاصل از کدگشایی ممکن است نامعتبر باشند.
- exception email.errors.InvalidBase64CharactersDefect¶
هنگام کدگشایی یک بلوک از بایتهای کدگذاریشدهی base64، نویسههایی خارج از الفبای base64 مشاهده شدند. این نویسهها نادیده گرفته میشوند، اما بایتهای کدگشاییشدهی حاصل ممکن است نامعتبر باشند.
- exception email.errors.InvalidBase64LengthDefect¶
هنگام کدگشایی یک بلوک از بایتهای کدگذاریشده به base64، تعداد نویسههای base64 غیر از پرکننده (padding) نامعتبر بود (۱ بیشتر از مضربی از ۴). بلوک کدگذاریشده بدون تغییر نگه داشته شد.
- exception email.errors.InvalidDateDefect¶
هنگام کدگشایی یک فیلد تاریخ نامعتبر یا غیرقابلتجزیه. مقدار اصلی همانطور که هست نگه داشته میشود.