nullmailer-send(8) System Manager's Manual nullmailer-send(8)

nullmailer-send - ارسال پیام‌های قرار گرفته در صف

nullmailer-send

این برنامه مسئول هماهنگی ارسال پیام‌هایی است که توسط nullmailer-queue در صف قرار گرفته‌اند. این برنامه از ماژول‌های پروتکل گوناگونی برای تحویل پیام‌ها از صف به کارگزارهای دوردست «هوشمند» (smart servers) استفاده می‌کند.

هنگام آغاز به کار برنامه، صف برای ساخت فهرستی از پیام‌های آماده ارسال پیمایش می‌شود. صف زمانی مجدداً بررسی می‌شود که یا ماشه (trigger) فعال شود، یا پس از گذشت pausetime ثانیه از آخرین ارسال ناموفق گذشته باشد. هنگامی که هیچ پیامی در صف وجود ندارد، nullmailer هیچ بررسی مجددی انجام نمی‌دهد مگر اینکه ماشه فعال شود. فعال کردن ماشه شامل باز کردن لوله نام‌گذاری‌شده (named pipe) مربوط به trigger و نوشتن یک بایت در آن است که باعث بیدار شدن این برنامه می‌شود (در صورتی که هم‌اکنون مشغول پردازش صف نباشد). این رویه توسط nullmailer-queue انجام می‌شود تا اطمینان حاصل شود که پیام‌ها بلافاصله تحویل داده می‌شوند. می‌توانید ارسال را به‌صورت دستی از خط فرمان به این صورت آغاز کنید:

echo 1 > trigger

تحویل پیام‌ها شامل خواندن فهرست کارگزارهای دوردست و سپس تلاش برای تحویل پیام‌ها به این کارگزارها به شرح زیر است. به ازای هر کارگزار دوردست در فهرست، گرداننده پروتکل تعیین‌شده به ازای هر پیام باقی‌مانده در صف یک بار اجرا می‌شود. اگر گرداننده پروتکل موفق شود، پیام از صف حذف شده و پردازش با پیام بعدی ادامه می‌یابد. اگر گرداننده پروتکل یک خطای دائمی گزارش کند، یا پیام بیشتر از queuelifetime در صف مانده باشد، پیام به صف failed منتقل شده و یک پیام برگشتی (bounce message) توسط nullmailer-dsn تولید می‌شود. اگر پیامی در صف باقی بماند، پردازش پیام‌های باقی‌مانده با کارگزار دوردست بعدی ادامه می‌یابد. هنگامی که تمام کارگزارهای دوردست امتحان شدند، nullmailer-send برای تعداد ثانیه‌های مشخص‌شده توسط pausetime به خواب می‌رود پیش از آنکه ارسال محتویات صف را دوباره امتحان کند.

تمام فایل‌های کنترلی هر بار که صف اجرا می‌شود دوباره خوانده می‌شوند.

متغیر محیطی $HELOHOST را تنظیم می‌کند که توسط ماژول پروتکل SMTP برای مشخص کردن پارامتر ارائه‌شده به دستور HELO استفاده می‌شود. مقدار پیش‌فرض آن برابر با مقدار فایل پیکربندی me است.
حداکثر زمان مکث میان اجراهای متوالی صف، بر حسب ثانیه. مقدار پیش‌فرض ۲۴ ساعت (86400) است.
حداقل زمان مکث میان اجراهای متوالی صف در زمان وجود پیام در صف، بر حسب ثانیه. مقدار پیش‌فرض ۱ دقیقه (60) است. هر بار که این زمان‌بندی سررسید می‌شود، زمان انتظار تا سقف حداکثری maxpause دو برابر می‌شود. پس از تزریق پیام‌های جدید، زمان انتظار بازنشانی می‌گردد. اگر این مقدار روی 0 تنظیم شود، nullmailer-send بلافاصله پس از یک بار پیمایش صف خارج می‌شود (حالت تک‌گذره یا one-shot).
حداکثر زمانی که یک پیام اجازه دارد پیش از آنکه به‌طور دائمی ناموفق تلقی شود در صف بماند، بر حسب ثانیه. مقدار پیش‌فرض ۷ روز (604800) است.
این فایل شامل فهرستی از کارگزارهای دوردست است که هر پیام باید به آن‌ها ارسال شود. هر خط این فایل شامل یک نام میزبان یا آدرس دوردست است که پس از آن یک رشته اختیاری پروتکل قرار می‌گیرد و با فاصله از هم جدا می‌شوند. نام پروتکل به‌طور پیش‌فرض smtp است و می‌تواند گزینه‌های بیشتری برای آن ماژول به دنبال داشته باشد. برای مشاهده فهرست گزینه‌های موجود بخش «گزینه‌های پروتکل (PROTOCOL OPTIONS)» را ببینید. گزینه‌ها می‌توانند به‌طور اختیاری دارای پیشوند -- باشند، اما این کار الزامی نیست. این خط مطابق قواعد استاندارد نقل‌قول شل (shell quoting) تجزیه می‌شود. برای نمونه، جهت اتصال به پورت ۲۵۲۵ در میزبان هوشمند SMTP که به احراز هویت SMTP نیز نیاز دارد و برای آغاز TLS با STARTTLS، از این الگو استفاده کنید:
smarthost.dom smtp port=2525 starttls user=user pass='my pass phrase'

خطوط خالی و خطوطی که با علامت هش (#) آغاز می‌شوند نادیده گرفته می‌شوند.

زمان انتظار برای اتمام ارسال پیام توسط ماژول دوردست ذکرشده در بالا، پیش از خاتمه اجباری آن و تلاش مجدد، بر حسب ثانیه. مقدار پیش‌فرض ۱ ساعت (3600) است. اگر این مقدار روی 0 تنظیم شود، nullmailer-send برای تکمیل ارسال پیام‌ها تا ابد منتظر خواهد ماند.

شماره پورت جایگزین برای اتصال به میزبان دوردست را تعیین می‌کند. برای نمونه، SMTP ممکن است از port=587 به‌عنوان پورت جایگزین تحویل پیام (submission) استفاده کند.
نام کاربری احراز هویت SMTP را تعیین می‌کند.
گذرواژه احراز هویت SMTP را تعیین می‌کند.
آدرس مبدأ برای اتصالات به میزبان دوردست را تعیین می‌کند.
به جای تشخیص خودکار، حالت «AUTH LOGIN» در SMTP را اجبار می‌کند.
اتصال با استفاده از TLS را برقرار می‌کند. این گزینه به‌طور خودکار پورت پیش‌فرض را به 465 تغییر می‌دهد.
نام مستعاری برای گزینه tls جهت سازگاری با نسخه‌های پیشین.
از دستور STARTTLS برای آغاز یک نشست TLS استفاده می‌کند.
نام فایل گواهی کلاینت TLS را برای ارسال به کارگزار تعیین می‌کند.
نام فایل کلید خصوصی مربوط به گواهی کلاینت TLS را تعیین می‌کند. پیش‌فرض آن همان نام فایل x509certfile است.
نام فایل مرجع صدور گواهی معتمد (CA trust) برای TLS را تعیین می‌کند. پیش‌فرض آن /etc/ssl/certs/ca-certificates.crt است.
نام فایل فهرست ابطال گواهی (CRL) برای TLS را تعیین می‌کند.
مشخص می‌کند که فایل‌های X.509 بالا برای TLS به جای فرمت PEM در قالب DER هستند.
اگر گواهی کارگزار در اعتبارسنجی شکست بخورد، اتصال TLS را متوقف نمی‌کند. تنها در صورتی از این گزینه استفاده کنید که مطمئن باشید کارگزار از یک گواهی نامعتبر استفاده می‌کند.
استفاده از احراز هویت ناشناس TLS - جایگزین احراز هویت مبتنی بر گواهی. این بدان معناست که برای برقراری اتصال به هیچ گواهی خارجی یا گذرواژه‌ای نیاز نیست. با این گزینه، اتصال شما در برابر حملات مرد میانی (حملات فعال یا تغییر مسیر) آسیب‌پذیر خواهد بود. با این حال، یکپارچگی داده‌ها حفظ شده و در برابر استراق سمع غیرفعال رمزنگاری می‌شوند. این گزینه باید به همراه گزینه insecure استفاده شود - تا تصدیق کند که می‌دانید چه کاری انجام می‌دهید.

/var/spool/nullmailer/failed
صف پیام‌های ناموفق.
/var/spool/nullmailer/queue
صف پیام‌های خروجی.
/var/spool/nullmailer/trigger
فایل ماشه (trigger) برای ایجاد ارسال فوری.
/usr/local/etc/nullmailer
دایرکتوری پیکربندی.
/usr/local/libexec/nullmailer
دایرکتوری برنامه‌های پروتکل.

nullmailer-dsn(1), nullmailer-inject(1), nullmailer-queue(8), mailq(1)

راهنمای http://www.postfix.org/TLS_README.html در مورد نحوه راه‌اندازی کارگزار Postfix SMTP بدون گواهی.