پرش به مستندات
پایگاه دانش

قاعده‌هایی که خودتان می‌نویسید

شرط‌های خودتان، و اینکه بر سر هر چیزی که با آن‌ها بخواند چه باید بیاید.

جزئیات

  • در تنظیمات ← قواعد نوشته می‌شوند، و روی REST API در /rules، که برای هر فضای کاری روشن است. یک قاعده فهرستی از شرط‌ها روی پیامی است که می‌رسد و فهرستی از کنش‌ها که روی هر چیزی که با آن‌ها بخواند انجام شود: 100 قاعده برای هر صندوق پستی، که هرکدام حداکثر 20 شرط و 10 کنش نگه می‌دارد. این‌ها محافظ در برابر اسکریپتی در حلقه‌اند نه محدودیت طرح. قاعده‌ی صدویکم با پیامی که همین را می‌گوید رد می‌شود، نه اینکه صورت‌حساب شود.
  • بیست‌ویک چیز که یک شرط می‌تواند درباره‌شان بپرسد: آدرس From و دامنه‌اش (جایی که خواندن روی example.com شاملِ mail.corp.example.com هم می‌شود)، فرستنده‌ی پاکت SMTP، To، Cc، Bcc، هر گیرنده‌ای، Reply-To، آدرسی که نسخه واقعاً به آن تحویل شده با برچسب جمعش برداشته‌شده، موضوع، متن، هر هدر نام‌برده‌شده‌ای، List-Id، نام، نوع یا اندازه‌ی یک پیوست، اینکه اصلاً پیوستی هست یا نه، اندازه‌ی کل پیام، حکم هرزنامه، و ساعت و روز هفته‌ای که به وقت UTC رسیده است. تطبیق یک glob است (* و ?)، یا شامل‌بودن، برابری، شروع‌شدن با، پایان‌یافتن به، و بزرگ‌تر یا کوچک‌تر برای آن چهار مورد عددی. یک الگو باید دو نویسه‌ی الفبایی-عددی از آنِ خودش داشته باشد، پس یک * تنها همان موقع که می‌نویسیدش رد می‌شود، نه اینکه با هر پیامی که تا ابد خواهد رسید بخواند.
  • همه‌ی شرط‌ها یا هرکدام از آن‌ها، با یک NOT روی تک‌تکشان. پرانتزگذاری تودرتو وجود ندارد: (A و B) یا C می‌شود دو قاعده، که شش ماه بعد هم همان‌طور بازش می‌خوانید.
  • یازده کنش: برچسب‌زدن، برداشتن یک برچسب، بایگانی، علامت‌زدن به‌عنوان خوانده‌شده، ستاره‌دارکردن، بایگانی به‌عنوان هرزنامه، انداختن در سطل زباله، هدایت، پاسخ خودکار از روی یک قالب، مسدودکردن فرستنده، و ردکردن یکسره‌ی پیام. قاعده‌ها به همان ترتیبی که گذاشته‌اید اجرا می‌شوند، از پایین‌ترین به بالا، و هرکدام را می‌توان بدون حذف‌کردن خاموش کرد. قاعده‌ای که «توقف پردازش» خورده باشد آن دور را تمام می‌کند، پس هیچ‌چیزِ زیرش در نظر گرفته نمی‌شود، و جایی که دو قاعده هر دو پوشه‌ای را نام ببرند، دومی برنده است، چون معنای یک فهرست شماره‌دار همین است.
  • ردکردن دمِ در فقط بر پایه‌ی پاکت است، و در غیر این صورت هنگام نوشتن رد می‌شود. یک 550 را کسی پاسخ می‌دهد که پیام را به ما داده، و در یک فهرست پستی آن همان فهرست است، که آن را نشانه‌ی مشترکی می‌خواند که نامه‌اش برمی‌گردد و اشتراکتان را از چیزی لغو می‌کند که فقط می‌خواستید یک نفر در آن پست نگذارد. قاعده‌ای که فرستنده را تنها روی هدر From بخواند، به‌جای آن زیر هرزنامه بایگانی می‌کند، دقیقاً همان‌طور که مسدودکردن این کار را می‌کند.
  • پاسخ خودکار به یک ماشین پاسخ نمی‌دهد. روی Auto-Submitted، Precedence: bulk، list یا junk، هدر List-Id یا List-Unsubscribe، X-Autoreply، X-Autorespond، و روی فرستنده‌ی پاکتِ خالی‌ای که هر پیام برگشتی حمل می‌کند، سرکوب می‌شود. فراتر از آن، هر فرستنده روزی حداکثر یک پاسخ می‌گیرد. دو صندوق پستی با قاعده‌های پاسخ و بدون محافظ، تا وقتی کسی متوجه شود به هم نامه می‌زنند.
  • هدایت یک نسخه‌ی بازساخته است نه همان پیامی که رسید: از مسیر ارسال بیرون می‌رود، پس امضای DKIM فرستنده از آن جان سالم به در نمی‌برد، و نه هدرهای غیرعادی و بخش‌های عجیب. پیام اصلی به‌صورت یک پیوست .eml همراهش می‌آید تا هدرها و بخش‌های دقیق همچنان برای خواندن باشند، مگر آنکه از سقف 5MB پیوست بگذرد، که در آن صورت هدایت همچنان با متن خواندنی می‌رود و اصل پیام در صندوق پستی خودتان جا می‌ماند. هیچ‌چیز به شما نمی‌گوید که این اتفاق افتاده، و همین بخشی است که دانستنش می‌ارزد. مقصد هنگام نوشتن قاعده بررسی می‌شود، اما فقط از نظر شکل: ops، یا ops@example بدون نقطه، همان موقع که می‌نویسید رد می‌شود نه اینکه بعداً به‌ازای هر پیامِ منطبق شکست بخورد. غلط تایپی‌ای که همچنان آدرس معتبری است ([email protected] به‌جای [email protected]) پذیرفته می‌شود، و از مقصد یک قاعده هرگز آن‌طور که از هدایت یک آدرس خواسته می‌شود، تأیید خواسته نمی‌شود، پس نسخه دقیقاً به همان چیزی می‌رود که تایپ کرده‌اید.
  • یک قاعده را می‌توان پیش از روشن‌شدن آزمود: آن را به سی روز گذشته نشانه بروید (تا یک سال، تا 200 پیام) و گزارش می‌دهد کدام‌یک از پیام‌های خودتان را می‌گرفت و با آن‌ها چه می‌کرد، بی‌آنکه به یکی از آن‌ها دست بزند. همان تطبیق‌دهنده‌ای که روی مسیر تحویل اجرا می‌شود این را پاسخ می‌دهد، اما پیام ذخیره‌شده همان پیامی نیست که SMTP تحویل داد. فرستنده‌ی پاکت، نقشه‌ی هدرها، List-Id، آدرسی که به آن تحویل شد و اندازه روی سیم تا آن موقع رفته‌اند، پس یازده‌تا از آن بیست‌ویک میدان در یک اجرای آزمایشی متفاوت پاسخ می‌دهند یا اصلاً نمی‌توانند پاسخ دهند، و آن پنجره به‌جای اینکه بی‌صدا آن‌ها را ناموفق بشمارد، نامشان را می‌برد. تیزترین مورد، قاعده‌ای است که دمِ در رد می‌کند: ملزم است شرطی روی فرستنده‌ی پاکت حمل کند، و هیچ‌چیز در انبار نمی‌تواند به آن پاسخ دهد، پس پیش‌نمایش گزارش می‌دهد که با هیچ‌چیز نخوانده، هرچقدر هم در عمل رد می‌کرد.
  • هیچ‌چیز عطف به ماسبق نمی‌شود، و عمداً دکمه‌ای هم نیست که چنینش کند. اعمال یک قاعده روی صندوق پستی‌ای که از پیش دارید بی‌حدوحصر است، بازگشتی ندارد، و هر پیامی را که لمس کند به بالای صندوق ورودی می‌کشد. قاعده‌ها تصمیم می‌گیرند بر سر نامه‌ای که بعد می‌رسد چه بیاید.
  • اینکه هر قاعده چه کرده برای هر پیام ثبت می‌شود (کنش‌هایی که اعمال شدند و، جداگانه، آن‌هایی که رد شدند و چرا)، پس هم «چرا این سر از اینجا درآورد» و هم «چرا پاسخ خودکارم به آن جواب نداد» پاسخ دارند. این گزارش نام قاعده را نگه می‌دارد، پس پس از تغییر نام یا حذف قاعده هم درست خوانده می‌شود.
  • روی هر آدرسی از دامنه‌های خودتان اعمال می‌شود، پس یک قاعده به هر چیزی که می‌رسد دست می‌یابد و جایی پیشنهاد نمی‌شود که بی‌صدا هیچ کاری نکند.
  • اگر موتور نتواند پاسخ دهد (شرطی از یک کلاینت تازه‌تر، پایگاه داده‌ای که پاسخ نمی‌دهد)، پیام همان‌طور که می‌بود تحویل می‌شود و آن شکست ثبت می‌شود. قاعده‌ای که خطا بیندازد یعنی پیامی که هرگز نمی‌رسد.