nullmailer-inject(1) General Commands Manual nullmailer-inject(1)

nullmailer-inject - قالب‌بندی مجدد و تزریق یک پیام به صف ارسال

nullmailer-inject [-a] [-b] [-e] [-f sender] [-h] [recipient [recipient ...]]

این برنامه یک پیام رایانامه را از ورودی استاندارد می‌خواند، سرآیند آن را برای سازگاری با RFC822 بازقالب‌بندی کرده و پیام حاصل را به صف ارسال می‌کند.

خطوط زیر برای نشانی‌های گیرنده تجزیه می‌شوند: To، Cc، Bcc، Apparently-To، Resent-To، Resent-Cc و Resent-Bcc.

خطوط نشانی فرستنده زیر تجزیه و بازنویسی می‌شوند: Sender، From، Reply-To، Return-Path، Return-Receipt-To، Errors-To، Resent-Sender، Resent-From و Resent-Reply-To. اگر فیلد سرآیند Return-Path حاضر باشد و شامل یک نشانی واحد باشد، از محتوای آن برای تنظیم نشانی فرستنده پاکت استفاده خواهد شد.

اگر پیام حاوی هر یک از فیلدهای زیر باشد، به‌عنوان یک پیام بازفرستاده‌شده در نظر گرفته می‌شود: Resent-Sender، Resent-From، Resent-Reply-To، Resent-To، Resent-Cc، Resent-Bcc، Resent-Date، Resent-Message-ID. اگر پیام بازفرستاده‌شده باشد، تنها فیلدهای گیرنده‌ای که دارای پیشوند Resent- هستند برای یافتن نشانی‌ها بررسی می‌شوند.

هرگونه وقوع Bcc، Resent-Bcc، Return-Path یا Content-Length پس از تجزیه (در صورت لزوم) دور ریخته می‌شوند.

اگر سرآیند فاقد فیلد Message-Id باشد، یک رشته یکتا تولید شده و به پیام افزوده می‌شود. اگر سرآیند فاقد فیلد Date باشد، تاریخ و زمان محلی کنونی در قالب RFC822 به پیام پیوست می‌شود. اگر پیام فاقد فیلدهای To یا Cc باشد، خط زیر به پیام پیوست می‌گردد:

Cc: recipient list not shown: ;

انتظار می‌رود فهرست‌های نشانی از نحو مشخص‌شده در RFC822 پیروی کنند. در ادامه توضیحی ساده‌شده از این نحو آمده است.

یک فهرست نشانی، فهرستی از نشانی‌هاست که با کاما از یکدیگر جدا شده‌اند. یک نشانی مجزا می‌تواند یکی از سه شکل زیر را داشته باشد: user@fqdn، comment <user@fqdn> یا phrase: address-list;. هر یک از دو شکل اول می‌تواند درون فهرست نشانی شکل سوم به کار رود. هر کلمه‌ای که حاوی نویسه‌های ویژه باشد باید درون علامت نقل‌قول دوتایی قرار گیرد و نویسه‌های ویژه باید با یک بک‌اسلش در ابتدای آن‌ها بیایند. توضیحات را می‌توان بین نشانی‌ها و در داخل پرانتز قرار داد. تمام توضیحات نادیده گرفته می‌شوند.

فهرست‌های نشانی در هنگام تجزیه بازقالب‌بندی می‌شوند تا تجزیه مجدد بعدی زمانی که پیام به مقصد(ها) می‌رسد، آسان‌تر باشد. اگر یک نشانی فاقد fqdn باشد، nullmailer-inject یک مورد به آن اضافه می‌کند.

تنها از آرگومان‌های خط فرمان به‌عنوان نشانی‌های گیرنده استفاده می‌کند. خطوط گیرنده در سرآیند را نادیده می‌گیرد.
هم از آرگومان‌های خط فرمان و هم از داده‌های سرآیند پیام به‌عنوان نشانی‌های گیرنده استفاده می‌کند.
یا از آرگومان‌های خط فرمان (در صورت وجود) یا از داده‌های سرآیند پیام (اگر آرگومانی وجود نداشته باشد) به‌عنوان نشانی‌های گیرنده استفاده می‌کند.
-f sender
نشانی فرستنده پاکت را روی sender تنظیم می‌کند.
تنها از داده‌های سرآیند پیام به‌عنوان نشانی‌های گیرنده استفاده می‌کند.
پیام را در صف قرار نمی‌دهد، بلکه محتوای بازقالب‌بندی‌شده را در خروجی استاندارد چاپ می‌کند.
هنگام چاپ پیام در خروجی استاندارد، مشخصات پاکت (نشانی‌های فرستنده و گیرنده) را پیش از پیام چاپ می‌کند.

در صورت موفقیت با وضعیت 0 خارج می‌شود؛ در غیر این صورت یک پیام تشخیصی در خطای استاندارد چاپ کرده و با وضعیت 1 خارج می‌شود.

متغیر محیطی NULLMAILER_FLAGS تجزیه می‌شود و در صورت وجود هر یک از حروف زیر، رفتار nullmailer-inject تغییر می‌یابد:

در فیلد تولیدشده From به جای سبک پیش‌فرض “comment <address>” از سبک “address (comment)” استفاده می‌کند.
هرگونه خط سرآیند From را نادیده گرفته و حذف می‌کند و همیشه یک فیلد تولیدشده را درج می‌نماید.
هرگونه خط سرآیند Message-Id را نادیده گرفته و حذف می‌کند.
هرگونه خط سرآیند Return-Path را نادیده گرفته و حذف می‌کند.
اگر سرآیند شامل هیچ‌کدام از فیلدهای To یا Cc نباشد، یک خط To شامل فهرستی از گیرندگان درج می‌کند. اگر تشخیص داده شود که پیام بازفرستاده شده است (به بالا مراجعه کنید)، در صورتی که سرآیند شامل هیچ‌کدام از فیلدهای Resent-To یا Resent-Cc نباشد، یک فیلد Resent-To افزوده می‌شود.

نام کاربر توسط NULLMAILER_USER، MAILUSER، USER یا LOGNAME، هر کدام که اول بیاید، مشخص می‌شود. اگر هیچ‌یک از موارد بالا تنظیم نشده باشد، نام از فایل گذرواژه خوانده می‌شود، یا در صورت عدم موفقیت، روی unknown تنظیم می‌گردد.

نام میزبان توسط مقدار متعارف‌شده NULLMAILER_HOST، MAILHOST یا HOSTNAME، هر کدام که اول بیاید، تنظیم می‌شود؛ یا اگر هیچ‌یک از متغیرهای بالا تنظیم نشده باشند، از فایل پیکربندی defaulthost خوانده می‌شود (به زیر مراجعه کنید).

نام کامل کاربر توسط NULLMAILER_NAME، MAILNAME، NAME یا نام کاربر در بالا، هر کدام که اول بیاید، تنظیم می‌شود.

نام کاربر و نام میزبان فرستنده پاکت به‌طور پیش‌فرض همان نام کاربر و میزبان تعیین‌شده در بالاست، اما می‌تواند توسط NULLMAILER_SUSER و NULLMAILER_SHOST بازنویسی و جایگزین شود.

اگر NULLMAILER_QUEUE تنظیم شده باشد، از برنامه نام‌برده به جای nullmailer-queue برای قرار دادن پیام قالب‌بندی‌شده در صف استفاده می‌شود.

هنگام خواندن فایل‌های زیر، یک خط واحد خوانده شده و تمام نویسه‌های فاصله خالی ابتدایی و انتهایی آن پیراسته می‌شوند.

محتوای این فایل به هر نام میزبانی که شامل نقطه نیست (به‌جز localhost)، از جمله defaulthost و idhost، پیوست می‌شود. مقدار پیش‌فرض آن مقدار فایل کنترلی me (در صورت وجود) است؛ در غیر این صورت، نام لفظی defaultdomain خواهد بود.
محتوای این فایل به هر نشانی‌ای که فاقد نام میزبان است پیوست می‌شود. مقدار پیش‌فرض آن مقدار فایل کنترلی me (در صورت وجود) است؛ در غیر این صورت، نام لفظی defaulthost خواهد بود.
محتوای این فایل هنگام ساخت رشته شناسه پیام (message-id) برای پیام استفاده می‌شود. مقدار پیش‌فرض آن مقدار متعارف‌شده defaulthost است.
نام کامل میزبان (FQDN) رایانه‌ای که nullmailer را اجرا می‌کند. مقدار پیش‌فرض آن نام لفظی me است.

nullmailer-queue(8)

این سند از بسیاری از جزئیات نحوه کارکرد واقعی تجزیه و بازنویسی نشانی‌ها (در میان سایر موارد) چشم‌پوشی می‌کند.