check-sieve(1) General Commands Manual check-sieve(1)

check-sieve - بررسی‌کننده نحو برای فیلترهای ایمیل Sieve.

check-sieve [گزینه‌ها] file [ file ... ]
check-sieve --help
check-sieve --version

check-sieve یک بررسی‌کننده نحو ساده برای غربال‌ها (اسکریپت‌های فیلتر Sieve) سمت سرور ایمیل است. این ابزار از بسیاری از RFCهای mail-sieve پشتیبانی می‌کند که جزئیات آن‌ها در ادامه آمده است.

نمایش راهنمای برنامه
بررسی طول فهرست‌های رشته‌ای، و پرچم‌گذاری مواردی که طولانی‌تر از مقدار مشخص‌شده هستند
اتصال به سرور مشخص‌شده، و فقط فعال‌سازی قابلیت‌های اعلان‌شده
ردگیری عملکرد تجزیه‌کننده (parser)
ردگیری عملکرد اسکنر (scanner)
ردگیری درخت نحو انتزاعی (abstract syntax tree)
شبیه‌سازی پردازش sieve روی یک فایل ایمیل (با فرمت .eml). بخش شبیه‌سازی (SIMULATION) در زیر را ببینید.
اجرای شبیه‌سازی برای هر فایل .eml در dir و مقایسه (diff) هر نتیجه با فایل منطبق .out. بخش شبیه‌سازی (SIMULATION) در زیر را ببینید.
بازتولید فایل‌های .out در dir از روی خروجی شبیه‌سازی فعلی. بخش شبیه‌سازی (SIMULATION) در زیر را ببینید.
چاپ اطلاعات نسخه

check-sieve می‌تواند نحوه مرتب‌سازی نامه‌ها توسط یک اسکریپت sieve را شبیه‌سازی کند، که اعتبارسنجی رفتار اسکریپت را بدون استقرار روی سرور ایمیل آسان می‌سازد.

اسکریپت sieve را اعتبارسنجی کرده و سپس آن را در برابر فایل .eml داده‌شده ارزیابی می‌کند. هر آزمایشی که مطابقت داشته باشد به صورت MATCH: <test> و هر عمل اجراشده به صورت ACTION: <action>. چاپ می‌شود. اگر هیچ عمل تحویلی انجام نشود، keep (implicit) به طور خودکار طبق RFC 5228 §4.2 افزوده می‌شود.
نکته: بسیاری از افزونه‌های RFC هنوز در دست توسعه هستند. ثبت یک گزارش اشکال برای افزونه‌های پشتیبانی‌نشده به اولویت‌بندی کارهای بعدی کمک خواهد کرد.

یک دایرکتوری آزمایشی حاوی فایل‌های .eml و به‌طور اختیاری فایل‌های .out است که خروجی مورد انتظار شبیه‌سازی را ثبت می‌کنند. فایل .out برای یک ایمیل مشخص، بر اساس نام پایه (stem) آن ایمیل نام‌گذاری می‌شود (برای مثال msg.eml ← msg.out).

اجرای شبیه‌سازی در برابر تمام فایل‌های .eml در dir. برای هر ایمیلی که دارای یک فایل منطبق .out باشد، خروجی واقعی (با حذف خط اولِ وابسته به محیط) با آن مقایسه (diff) می‌شود. اگر تمام مقایسه‌ها موفق باشند، برنامه با کد ۰ و بدون خروجی خارج می‌شود. اگر اختلافی وجود داشته باشد، هر تفاوت چاپ شده و به دنبال آن خلاصه‌ای در خروجی خطای استاندارد (stderr) نمایش می‌یابد و برنامه با کد ۱ خارج می‌شود. ایمیل‌های بدون فایل .out شبیه‌سازی می‌شوند اما مورد مقایسه قرار نمی‌گیرند.
بازتولید فایل .out برای تمامی فایل‌های .eml در dir، با ایجاد یا بازنویسی در صورت نیاز. این دستور را پس از اعمال تغییرات عمدی در یک اسکریپت sieve یا شبیه‌ساز اجرا کنید تا خروجی مورد انتظار پیش از اجرای مجدد --test-dir به‌روزرسانی شود.

برای دریافت اطلاعات درباره مشکلات موجود، و ثبت گزارش اشکال نشانی زیر را بررسی کنید: https://github.com/dburkart/check-sieve/issues

Dana Burkart
Stuart Montgomery

فهرست کامل RFCهای پشتیبانی‌شده:

غربال: زبانی برای فیلتر کردن ایمیل (RFC 5228) - Sieve: An Email Filtering Language
افزونه متغیرها (RFC 5229)
افزونه‌های تاریخ و نمایه (RFC 5260)
افزونه تعطیلات (RFC 5230)
پارامتر "Seconds" برای تعطیلات (RFC 6131)
افزونه الحاق (RFC 6609)
کپی کردن بدون اثرات جانبی (RFC 3894)
افزونه‌های رد کردن و رد گسترش‌یافته (RFC 5429)
افزونه بدنه (RFC 5173)
افزونه رابطه‌ای (RFC 5231)
آزمون‌های بخش MIME، تکرار، استخراج، جایگزینی و محصور‌سازی (RFC 5703)
افزونه پرچم‌های IMAP4 (RFC 5232)
افزونه ویرایش سرآیند (RFC 5293)
افزونه عبارات باقاعده (پیش‌نویس)
افزونه‌های آزمون هرزنامه و ویروس (RFC 5235)
افزونه‌های اعلان‌ها (RFC 5435)
افزونه زیرنشانی (RFC 5233)
افزونه Ihave (RFC 5463)
افزونه محیط (RFC 5183)
سازوکار اعلان Sieve: mailto (RFC 5436)
رویدادهای پروتکل دسترسی به پیام اینترنتی (IMAP) (RFC 6785)
تبدیل پیام‌ها پیش از تحویل (RFC 6558)
تشخیص تحویل‌های تکراری (RFC 7352)
فهرست‌های ذخیره‌شده خارجی (RFC 6134)
تحویل به صندوق‌های پستی با کاربرد ویژه (RFC 8579)
رونوشت کاربنی فایل (FCC) (RFC 8580)
تحویل از طریق MAILBOXID (RFC 9042)
اعلان‌های وضعیت تحویل و افزونه‌های Deliver-By (RFC 6009)
افزونه پردازش پیوست‌های تقویم (RFC 9671)
افزونه انقضای پروتون (ویژه ارائه‌دهنده)
افزونه ارزیابی پروتون (ویژه ارائه‌دهنده)
فراخوانی برنامه‌های خارجی داوکات (ویژه ارائه‌دهنده)
10 Apr 2026 version 1.0.1