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

هنگام کدگشایی یک فیلد تاریخ نامعتبر یا غیرقابل‌تجزیه. مقدار اصلی همان‌طور که هست نگه داشته می‌شود.