.TH "SIEVEC" "1" "May 2026" "e5ac02a" "Dovecot" .SH "نام (NAME)" \fBsievec\fR \- کامپایلر اسکریپت Sieve برای Pigeonhole .SH "خلاصه دستور (SYNOPSIS)" .P \fBsievec\fR \[lB]\fIoptions\fR\[rB] \fIscript-file\fR \[lB]\fIout-file\fR\[rB] .SH "توضیحات (DESCRIPTION)" .P دستور \fBsievec\fR بخشی از مجموعه‌ی Pigeonhole (pigeonhole(7)) است که پشتیبانی از Sieve (RFC 5228) و ManageSieve (RFC 5804) را به Dovecot (dovecot(1)) اضافه می‌کند. .P با استفاده از دستور \fBsievec\fR، اسکریپت‌های Sieve را می‌توان به یک ساختار باینری کامپایل کرد. باینری حاصل را می‌توان مستقیماً برای پردازش پیام‌های ایمیل در طول فرایند تحویل به کار برد. تحویل پیام‌های پستی و همچنین اجرای اسکریپت‌های Sieve — از طریق افزونه‌ی LDA Sieve — توسط عامل تحویل محلی Dovecot (LDA) با نام dovecot-lda(1) انجام می‌شود. .P معمولاً نیازی به کامپایل دستی اسکریپت Sieve با استفاده از \fBsievec\fR نیست، زیرا dovecot-lda(1) در صورت نبود فایل باینری، این کار را به صورت خودکار انجام خواهد داد. با این حال، در برخی موارد dovecot-lda(1) مجوز نوشتن باینری کامپایل‌شده روی دیسک را ندارد که این امر باعث می‌شود با هر بار اجرا، اسکریپت مجدداً کامپایل شود. با استفاده از ابزار \fBsievec\fR، یک کاربر مجاز می‌تواند این کار را دستی انجام دهد تا کارایی افزایش یابد. .P پیاده‌سازی Pigeonhole Sieve فایل‌های دارای پسوند \fB.sieve\fR را به عنوان اسکریپت‌های Sieve و فایل‌های متناظر با پسوند \fB.svbin\fR را به عنوان باینری کامپایل‌شده‌ی مربوطه شناسایی می‌کند. این بدان معناست که برای نمونه، فرایند LDA در Dovecot هنگامی که نیاز به اجرای "dovecot.sieve" دارد، ابتدا به دنبال فایل باینری "dovecot.svbin" می‌گردد. در صورت موجود نبودن یا قدیمی بودن، یک فایل باینری جدید کامپایل خواهد کرد. .P دستور \fBsievec\fR همچنین برای بررسی و اعتبارسنجی اسکریپت‌های Sieve پیش از استفاده مفید است. علاوه بر این، با گزینه‌ی \fB-d\fR می‌تواند یک نسخه‌ی متنی (و در نتیجه خوانا برای انسان) از کد Sieve تولیدشده را در فایل مشخص‌شده بنویسد. این خروجی با آنچه دستور sieve-dump(1) برای یک فایل باینری ذخیره‌شده تولید می‌کند، یکسان است. این خروجی عمدتاً برای یافتن باگ‌هایی در کامپایلر که منجر به تولید باینری‌های معیوب می‌شوند، کاربرد دارد. .SH "گزینه‌ها (OPTIONS)" .P \fB-c\fR \fIconfig-file\fR .RS 0 .RS 4 .P مسیر جایگزین برای فایل پیکربندی Dovecot. .RE 0 .RE 0 .P \fB-d\fR .RS 0 .RS 4 .P به جای نوشتن فایل باینری در \fIout-file\fR، یک نسخه‌ی متنی (dump) از باینری را می‌نویسد. در این حالت، مقدار '-' برای \fIout-file\fR معنای ویژه‌ای دارد: باعث می‌شود نسخه‌ی متنی در \fBstdout\fR نوشته شود. آرگومان \fIout-file\fR می‌تواند حذف نیز بشود که اثری مشابه '-' خواهد داشت. خروجی تولیدشده با آنچه دستور sieve-dump(1) برای یک فایل باینری کامپایل‌شده‌ی Sieve ایجاد می‌کند یکسان است. توجه داشته باشید که در صورت دایرکتوری بودن آرگومان \fIout-file\fR، استفاده از این گزینه مجاز نیست. .RE 0 .RE 0 .P \fB-D\fR .RS 0 .RS 4 .P فعال‌سازی اشکال‌زدایی Sieve. .RE 0 .RE 0 .P \fB-o\fR \fIsetting\fR\fB=\fR\fIvalue\fR .RS 0 .RS 4 .P تنظیم پیکربندی \fIsetting\fR را از \fI/etc/dovecot/dovecot.conf\fR و از userdb با مقدار داده‌شده‌ی \fIvalue\fR بازنویسی می‌کند. برای بازنویسی چندین تنظیم، می‌توان گزینه‌ی \fB-o\fR را چندین بار مشخص کرد. .RE 0 .RE 0 .P \fB-u\fR \fIuser/mask\fR .RS 0 .RS 4 .P اجرای دستور تنها برای کاربر مشخص‌شده در \fIuser\fR. همچنین استفاده از نویسه‌های عمومی (wildcard) مانند '\fB*\fR' و '\fB?\fR' امکان‌پذیر است (مثلاً -u *@example.org). .RE 0 .RE 0 .P \fB-x\fR \fIauth_info\fR .RS 0 .RS 4 .P پارامتر \fIauth_info\fR شرایط اضافی را برای دستور \fBuser\fR مشخص می‌کند. رشته‌ی گزینه‌ی \fIauth_info\fR باید به صورت جفت \fIname\fR \fB=\fR \fIvalue\fR داده شود. برای شرایط چندگانه، گزینه‌ی \fB-x\fR را می‌توان چند بار مشخص کرد. .P نام‌های مجاز برای \fIauth_info\fR عبارتند از: .P \fBservice\fR .RS 4 .P سرویسی که جستجوی userdb باید برای آن آزمایش شود. این مقدار می‌تواند نام یک سرویس باشد که معمولاً با Dovecot استفاده می‌شود؛ برای نمونه: \fBimap\fR، \fBpop3\fR یا \fBsmtp\fR. .RE 0 .P \fBsession\fR .RS 4 .P شناسه نشست (Session identifier). .RE 0 .P \fBlip\fR .RS 4 .P نشانی IP محلی (سرور) برای آزمایش. .RE 0 .P \fBrip\fR .RS 4 .P نشانی IP راه دور (کلاینت) برای آزمایش. .RE 0 .P \fBlport\fR .RS 4 .P پورت محلی، مثلاً 143 .RE 0 .P \fBrport\fR .RS 4 .P پورت راه دور، مثلاً 24567 .RE 0 .P \fBreal_lip\fR .RS 4 .P نشانی IP محلی روی این میزبان که کلاینت به آن متصل شده است. .RE 0 .P \fBreal_rip\fR .RS 4 .P نشانی IP راه دور که کلاینت از آن به این میزبان متصل شده است. .RE 0 .P \fBreal_lport\fR .RS 4 .P پورت محلی روی این میزبان که کلاینت به آن متصل شده است. .RE 0 .P \fBreal_rport\fR .RS 4 .P پورت راه دور که کلاینت از آن به این میزبان متصل شده است. .RE 0 .P \fBforward_\fR .RS 4 .P فیلدی که باید به صورت %{forward:field} به فرایند احراز هویت (auth) ارسال شود. .RE 0 .RE 0 .RE 0 .SH "آرگومان‌ها (ARGUMENTS)" .P \fIscript-file\fR .RS 0 .RS 4 .P اسکریپتی که باید کامپایل شود را مشخص می‌کند. اگر آرگومان \fIscript-file\fR یک دایرکتوری باشد، تمام فایل‌های موجود در آن دایرکتوری با پسوند \fI.sieve\fR به یک فایل باینری متناظر \fI.svbin\fR کامپایل می‌شوند. فرایند کامپایل با بروز خطا متوقف نمی‌شود؛ بلکه تلاش می‌کند تا جای ممکن اسکریپت‌های موجود در دایرکتوری را کامپایل کند. توجه داشته باشید در صورتی که آرگومان \fIscript-file\fR یک دایرکتوری باشد، استفاده از گزینه‌ی \fB-d\fR و آرگومان \fIout-file\fR مجاز نیست. .RE 0 .RE 0 .P \fIout-file\fR .RS 0 .RS 4 .P محل نوشتن خروجی (باینری) را مشخص می‌کند. این آرگومان اختیاری است. اگر حذف شود، باینری کامپایل‌شده از .sieve به صورت .svbin ذخیره می‌شود. اگر این آرگومان حذف شود و \fB-b\fR مشخص شده باشد، نسخه‌ی متنی باینری در \fBstdout\fR نوشته می‌شود. .RE 0 .RE 0 .SH "وضعیت خروج (EXIT STATUS)" .P دستور \fBsievec\fR با یکی از مقادیر زیر خارج می‌شود: .P \fB0\fR .RS 0 .RS 4 .P کامپایل با موفقیت انجام شد. (EX_OK, EXIT_SUCCESS) .RE 0 .RE 0 .P \fB1\fR .RS 0 .RS 4 .P عملیات شکست خورد. این مقدار تقریباً برای تمامی خطاها برگردانده می‌شود. (EXIT_FAILURE) .RE 0 .RE 0 .P \fB64\fR .RS 0 .RS 4 .P پارامتر نامعتبر داده شده است. (EX_USAGE) .RE 0 .RE 0 .P \fB67\fR .RS 0 .RS 4 .P کاربر وجود ندارد. .RE 0 .RE 0 .P \fB68\fR .RS 0 .RS 4 .P فایل ورودی، نشانی یا منبع دیگر وجود ندارد. .RE 0 .RE 0 .P \fB73\fR .RS 0 .RS 4 .P امکان ایجاد فایل خروجی وجود ندارد. .RE 0 .RE 0 .P \fB77\fR .RS 0 .RS 4 .P خطای دسترسی و مجوزها (Permission error). .RE 0 .RE 0 .P \fB78\fR .RS 0 .RS 4 .P خطای پیکربندی (Configuration error). .RE 0 .RE 0 .P \fB127\fR .RS 0 .RS 4 .P خطای ناشناخته. .RE 0 .RE 0 .SH "فایل‌ها (FILES)" .P \fI/etc/dovecot/dovecot.conf\fR .RS 0 .RS 4 .P فایل پیکربندی اصلی Dovecot. .RE 0 .RE 0 .P \fI/etc/dovecot/conf.d/90-sieve.conf\fR .RS 0 .RS 4 .P تنظیمات مفسر Sieve (فراخوانی‌شده از فایل پیکربندی اصلی .RE 0 .RE 0 .RS 0 .RS 4 .P Dovecot) .RE 0 .RE 0 .SH "گزارش باگ‌ها (REPORTING BUGS)" .P باگ‌ها را به همراه خروجی \fIdoveconf -n\fR به فهرست پستی Dovecot به نشانی \fI\(ladovecot@dovecot.org\(ra\fR گزارش کنید. اطلاعات مربوط به گزارش باگ‌ها در این نشانی در دسترس است: \fI\(lahttps://dovecot.org/bugreport.html\(ra\fR .SH "همچنین ببینید (SEE ALSO)" .P dovecot(1), dovecot-lda(1), sieve-dump(1), sieve-filter(1), sieve-test(1), pigeonhole(7)