SIEVEC(1) Dovecot SIEVEC(1)

sievec - کامپایلر اسکریپت Sieve برای Pigeonhole

sievec [options] script-file [out-file]

دستور sievec بخشی از مجموعه‌ی Pigeonhole (pigeonhole(7)) است که پشتیبانی از Sieve (RFC 5228) و ManageSieve (RFC 5804) را به Dovecot (dovecot(1)) اضافه می‌کند.

با استفاده از دستور sievec، اسکریپت‌های Sieve را می‌توان به یک ساختار باینری کامپایل کرد. باینری حاصل را می‌توان مستقیماً برای پردازش پیام‌های ایمیل در طول فرایند تحویل به کار برد. تحویل پیام‌های پستی و همچنین اجرای اسکریپت‌های Sieve — از طریق افزونه‌ی LDA Sieve — توسط عامل تحویل محلی Dovecot (LDA) با نام dovecot-lda(1) انجام می‌شود.

معمولاً نیازی به کامپایل دستی اسکریپت Sieve با استفاده از sievec نیست، زیرا dovecot-lda(1) در صورت نبود فایل باینری، این کار را به صورت خودکار انجام خواهد داد. با این حال، در برخی موارد dovecot-lda(1) مجوز نوشتن باینری کامپایل‌شده روی دیسک را ندارد که این امر باعث می‌شود با هر بار اجرا، اسکریپت مجدداً کامپایل شود. با استفاده از ابزار sievec، یک کاربر مجاز می‌تواند این کار را دستی انجام دهد تا کارایی افزایش یابد.

پیاده‌سازی Pigeonhole Sieve فایل‌های دارای پسوند .sieve را به عنوان اسکریپت‌های Sieve و فایل‌های متناظر با پسوند .svbin را به عنوان باینری کامپایل‌شده‌ی مربوطه شناسایی می‌کند. این بدان معناست که برای نمونه، فرایند LDA در Dovecot هنگامی که نیاز به اجرای "dovecot.sieve" دارد، ابتدا به دنبال فایل باینری "dovecot.svbin" می‌گردد. در صورت موجود نبودن یا قدیمی بودن، یک فایل باینری جدید کامپایل خواهد کرد.

دستور sievec همچنین برای بررسی و اعتبارسنجی اسکریپت‌های Sieve پیش از استفاده مفید است. علاوه بر این، با گزینه‌ی -d می‌تواند یک نسخه‌ی متنی (و در نتیجه خوانا برای انسان) از کد Sieve تولیدشده را در فایل مشخص‌شده بنویسد. این خروجی با آنچه دستور sieve-dump(1) برای یک فایل باینری ذخیره‌شده تولید می‌کند، یکسان است. این خروجی عمدتاً برای یافتن باگ‌هایی در کامپایلر که منجر به تولید باینری‌های معیوب می‌شوند، کاربرد دارد.

-c config-file

مسیر جایگزین برای فایل پیکربندی Dovecot.

-d

به جای نوشتن فایل باینری در out-file، یک نسخه‌ی متنی (dump) از باینری را می‌نویسد. در این حالت، مقدار '-' برای out-file معنای ویژه‌ای دارد: باعث می‌شود نسخه‌ی متنی در stdout نوشته شود. آرگومان out-file می‌تواند حذف نیز بشود که اثری مشابه '-' خواهد داشت. خروجی تولیدشده با آنچه دستور sieve-dump(1) برای یک فایل باینری کامپایل‌شده‌ی Sieve ایجاد می‌کند یکسان است. توجه داشته باشید که در صورت دایرکتوری بودن آرگومان out-file، استفاده از این گزینه مجاز نیست.

-D

فعال‌سازی اشکال‌زدایی Sieve.

-o setting=value

تنظیم پیکربندی setting را از /etc/dovecot/dovecot.conf و از userdb با مقدار داده‌شده‌ی value بازنویسی می‌کند. برای بازنویسی چندین تنظیم، می‌توان گزینه‌ی -o را چندین بار مشخص کرد.

-u user/mask

اجرای دستور تنها برای کاربر مشخص‌شده در user. همچنین استفاده از نویسه‌های عمومی (wildcard) مانند '*' و '?' امکان‌پذیر است (مثلاً -u *@example.org).

-x auth_info

پارامتر auth_info شرایط اضافی را برای دستور user مشخص می‌کند. رشته‌ی گزینه‌ی auth_info باید به صورت جفت name = value داده شود. برای شرایط چندگانه، گزینه‌ی -x را می‌توان چند بار مشخص کرد.

نام‌های مجاز برای auth_info عبارتند از:

service

سرویسی که جستجوی userdb باید برای آن آزمایش شود. این مقدار می‌تواند نام یک سرویس باشد که معمولاً با Dovecot استفاده می‌شود؛ برای نمونه: imap، pop3 یا smtp.

session

شناسه نشست (Session identifier).

lip

نشانی IP محلی (سرور) برای آزمایش.

rip

نشانی IP راه دور (کلاینت) برای آزمایش.

lport

پورت محلی، مثلاً 143

rport

پورت راه دور، مثلاً 24567

real_lip

نشانی IP محلی روی این میزبان که کلاینت به آن متصل شده است.

real_rip

نشانی IP راه دور که کلاینت از آن به این میزبان متصل شده است.

real_lport

پورت محلی روی این میزبان که کلاینت به آن متصل شده است.

real_rport

پورت راه دور که کلاینت از آن به این میزبان متصل شده است.

forward_<field>

فیلدی که باید به صورت %{forward:field} به فرایند احراز هویت (auth) ارسال شود.

script-file

اسکریپتی که باید کامپایل شود را مشخص می‌کند. اگر آرگومان script-file یک دایرکتوری باشد، تمام فایل‌های موجود در آن دایرکتوری با پسوند .sieve به یک فایل باینری متناظر .svbin کامپایل می‌شوند. فرایند کامپایل با بروز خطا متوقف نمی‌شود؛ بلکه تلاش می‌کند تا جای ممکن اسکریپت‌های موجود در دایرکتوری را کامپایل کند. توجه داشته باشید در صورتی که آرگومان script-file یک دایرکتوری باشد، استفاده از گزینه‌ی -d و آرگومان out-file مجاز نیست.

out-file

محل نوشتن خروجی (باینری) را مشخص می‌کند. این آرگومان اختیاری است. اگر حذف شود، باینری کامپایل‌شده از <scriptname>.sieve به صورت <scriptname>.svbin ذخیره می‌شود. اگر این آرگومان حذف شود و -b مشخص شده باشد، نسخه‌ی متنی باینری در stdout نوشته می‌شود.

دستور sievec با یکی از مقادیر زیر خارج می‌شود:

0

کامپایل با موفقیت انجام شد. (EX_OK, EXIT_SUCCESS)

1

عملیات شکست خورد. این مقدار تقریباً برای تمامی خطاها برگردانده می‌شود. (EXIT_FAILURE)

64

پارامتر نامعتبر داده شده است. (EX_USAGE)

67

کاربر وجود ندارد.

68

فایل ورودی، نشانی یا منبع دیگر وجود ندارد.

73

امکان ایجاد فایل خروجی وجود ندارد.

77

خطای دسترسی و مجوزها (Permission error).

78

خطای پیکربندی (Configuration error).

127

خطای ناشناخته.

/etc/dovecot/dovecot.conf

فایل پیکربندی اصلی Dovecot.

/etc/dovecot/conf.d/90-sieve.conf

تنظیمات مفسر Sieve (فراخوانی‌شده از فایل پیکربندی اصلی

Dovecot)

باگ‌ها را به همراه خروجی doveconf -n به فهرست پستی Dovecot به نشانی ⟨dovecot@dovecot.org⟩ گزارش کنید. اطلاعات مربوط به گزارش باگ‌ها در این نشانی در دسترس است: ⟨https://dovecot.org/bugreport.html⟩

dovecot(1), dovecot-lda(1), sieve-dump(1), sieve-filter(1), sieve-test(1), pigeonhole(7)

May 2026 e5ac02a