| SIEVEC(1) | Dovecot | SIEVEC(1) |
نام (NAME)
sievec - کامپایلر اسکریپت Sieve برای Pigeonhole
خلاصه دستور (SYNOPSIS)
sievec [options] script-file [out-file]
توضیحات (DESCRIPTION)
دستور 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) برای یک فایل باینری ذخیرهشده تولید میکند، یکسان است. این خروجی عمدتاً برای یافتن باگهایی در کامپایلر که منجر به تولید باینریهای معیوب میشوند، کاربرد دارد.
گزینهها (OPTIONS)
-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) ارسال شود.
آرگومانها (ARGUMENTS)
script-file
اسکریپتی که باید کامپایل شود را مشخص میکند. اگر آرگومان script-file یک دایرکتوری باشد، تمام فایلهای موجود در آن دایرکتوری با پسوند .sieve به یک فایل باینری متناظر .svbin کامپایل میشوند. فرایند کامپایل با بروز خطا متوقف نمیشود؛ بلکه تلاش میکند تا جای ممکن اسکریپتهای موجود در دایرکتوری را کامپایل کند. توجه داشته باشید در صورتی که آرگومان script-file یک دایرکتوری باشد، استفاده از گزینهی -d و آرگومان out-file مجاز نیست.
out-file
محل نوشتن خروجی (باینری) را مشخص میکند. این آرگومان اختیاری است. اگر حذف شود، باینری کامپایلشده از <scriptname>.sieve به صورت <scriptname>.svbin ذخیره میشود. اگر این آرگومان حذف شود و -b مشخص شده باشد، نسخهی متنی باینری در stdout نوشته میشود.
وضعیت خروج (EXIT STATUS)
دستور sievec با یکی از مقادیر زیر خارج میشود:
0
کامپایل با موفقیت انجام شد. (EX_OK, EXIT_SUCCESS)
1
عملیات شکست خورد. این مقدار تقریباً برای تمامی خطاها برگردانده میشود. (EXIT_FAILURE)
64
پارامتر نامعتبر داده شده است. (EX_USAGE)
67
کاربر وجود ندارد.
68
فایل ورودی، نشانی یا منبع دیگر وجود ندارد.
73
امکان ایجاد فایل خروجی وجود ندارد.
77
خطای دسترسی و مجوزها (Permission error).
78
خطای پیکربندی (Configuration error).
127
خطای ناشناخته.
فایلها (FILES)
/etc/dovecot/dovecot.conf
فایل پیکربندی اصلی Dovecot.
/etc/dovecot/conf.d/90-sieve.conf
تنظیمات مفسر Sieve (فراخوانیشده از فایل پیکربندی اصلی
Dovecot)
گزارش باگها (REPORTING BUGS)
باگها را به همراه خروجی doveconf -n به فهرست پستی Dovecot به نشانی ⟨dovecot@dovecot.org⟩ گزارش کنید. اطلاعات مربوط به گزارش باگها در این نشانی در دسترس است: ⟨https://dovecot.org/bugreport.html⟩
همچنین ببینید (SEE ALSO)
dovecot(1), dovecot-lda(1), sieve-dump(1), sieve-filter(1), sieve-test(1), pigeonhole(7)
| May 2026 | e5ac02a |