MAILPOST(8) InterNetNews Documentation MAILPOST(8)

mailpost - تغذیه پیام‌های ایمیل به یک گروه خبری Usenet

mailpost [-hn] [-a addr] [-b database] [-c wait-time] [-d distribution] [-f addr] [-m mailing-list] [-o output-command] [-p port] [-r addr] [-t tempdir] [-x header[:header...]] [-z header[:header...]] newsgroups

برنامه mailpost یک پیام ایمیل با ساختار معتبر را از stdin می‌خواند و آن را برای ارسال به یک سرور خبری به inews تحویل می‌دهد. newsgroups فهرستی از نام‌های گروه‌های خبری است که با فاصله از هم جدا شده‌اند و مقاله باید در آن‌ها ارسال شود (حداقل یک گروه خبری باید مشخص شود).

پیش از تحویل مقاله به inews، بررسی می‌کند که مقاله قبلاً دیده نشده باشد، و برخی از فیلدهای سرایند را تغییر می‌دهد (پاک‌سازی برخی از فیلدهای سرایند آدرس، حذف مواردی مانند X-Complaints-To و X-Trace، و قرار دادن "X-" در ابتدای فیلدهای سرایند ناشناخته). فیلدهای سرایند Received و *-To نیز برای جلوگیری از ارسال هرزنامه به درگاه (gateway) تغییر می‌یابند (نام سرور خبری یا نام دامنه تنظیم‌شده در fromhost، pathhost و domain در inn.conf حذف می‌شوند).

اگر مقاله قبلاً دیده شده باشد (mailpost مقدار Message-ID هر مقاله‌ای را که پردازش می‌کند ثبت می‌نماید)، مقاله با وضعیت خطای غیرصفر نادیده گرفته و دور انداخته می‌شود. سایر خطاها باعث می‌شوند مقاله به newsmaster (که در زمان پیکربندی انتخاب می‌شود و به‌طور پیش‌فرض "usenet" است) ایمیل شود.

به‌طور معمول، mailpost توسط sendmail(8) از طریق یک مدخل alias اجرا می‌شود:

local-mail-wreck-bikes: "|<pathbin in inn.conf>/mailpost
    -b /var/spool/mailpost -t /tmp -d local local.bicycles.racing"

فلگ‌های -b و -t برای تغییر دایرکتوری‌های پیش‌فرض استفاده‌شده توسط mailpost مفید هستند. در واقع، هرچند توصیه می‌شود mailpost با کاربر news اجرا شود، اما اغلب اوقات با کاربر دیگری، به‌ویژه کاربر mail اجرا می‌شود. بنابراین باید اطمینان حاصل کنید دایرکتوری‌هایی که پایگاه داده و فایل‌های موقت در آن‌ها قرار می‌گیرند ایجاد شده و برای کاربری که mailpost با آن اجرا می‌شود قابل نوشتن باشند. همچنین mailpost باید توسط آن کاربر قابل اجرا باشد.

به جای /var/spool/mailpost، می‌توان دایرکتوری spool ایمیل یا هر دایرکتوری دیگری را که فرایند mailpost در آن دسترسی نوشتن دارد مشخص کرد.

یک شیوه متداول برای ایجاد درگاه میان یک گروه خبری و یک فهرست پستی (mailing-list)، ایجاد یک گروه خبری مدیریت‌شده (moderated) است (برای نمونه با اجرای دستور "ctlinnd newgroup local.bicycles.racing m") و تنظیم آدرس مدیریت این گروه خبری در فایل moderators در pathetc روی آدرس فهرست پستی. اگر در مثال بالا فلگ -a را اضافه کنید، از یک سو، هنگامی که پیامی به فهرست پستی ارسال می‌شود، mailpost اجرا شده، آن را تأییدشده علامت‌گذاری می‌کند و پیام مستقیماً به گروه خبری می‌رسد. از سوی دیگر، هنگامی که پیامی در گروه خبری ارسال می‌شود، به‌طور معمول فیلد سرایند Approved ندارد، بنابراین (توسط nnrpd) به آدرس فهرست پستی پیکربندی‌شده در فایل moderators ارسال می‌شود، به این معنی که پیام به فهرست پستی می‌رسد و مانند هر پیام دیگری که به فهرست پستی ارسال می‌شود، توسط mailpost پردازش شده، تأیید می‌گردد و در نهایت به گروه خبری می‌رسد.

در صورت استفاده از فلگ -a، مقدار addr (که معمولاً آدرس ایمیل ارسال‌کننده است) به عنوان بدنه فیلد سرایند Approved به مقاله اضافه می‌شود. این گزینه زمانی کاربرد دارد که یکی از گروه‌های خبری که مقاله باید در آن ارسال شود مدیریت‌شده (moderated) باشد. (البته این فلگ تنها زمانی باید اضافه شود که مجاز به تأیید خودکار ارسال‌های خود باشید.)

اطمینان حاصل کنید اتصالی که توسط inews برای ارسال مقاله به reader برقرار می‌شود، اجازه ارسال مقالات تأییدشده را داشته باشد (حرف "A" را در پارامتر access از بلوک‌های دسترسی در readers.conf ببینید).

در صورت استفاده از فلگ -b، این گزینه مسیر پایگاه داده ماندگاری را تعیین می‌کند که برای ذخیره Message-ID مقاله‌های ارسال‌شده استفاده می‌شود. این کار برای جلوگیری از چرخش بی‌پایان مقالات در صورت بازگرداندن آن‌ها توسط درگاه خبر به ایمیل است. این گزینه ممکن است زمانی لازم باشد که فرایند mailpost دسترسی نوشتن به دایرکتوری پایگاه داده خبر ندارد (به‌ویژه هنگامی که با کاربر mail اجرا می‌شود). مقدار پیش‌فرض pathdb است که در inn.conf تنظیم شده است.

اطمینان حاصل کنید مسیر مشخص‌شده وجود دارد و برای کاربری که mailpost با آن اجرا می‌شود قابل نوشتن است.

فلگ -c مدت زمان توقف (sleep) پیش از ارسال مقاله را مشخص می‌کند. اگر پیام‌های تکراری در این بازه زمانی دریافت شوند (توسط هر نمونه‌ای از mailpost که از پایگاه داده یکسان استفاده می‌کند)، مقاله تنها یک بار ارسال می‌شود، اما بدنه فیلد سرایند Newsgroups به گونه‌ای ویرایش می‌شود که مقاله در تمام گروه‌های مشخص‌شده به صورت هم‌زمان ارسال (crosspost) گردد. واحد wait-time ثانیه است؛ مقدار مناسب می‌تواند بین ده‌ها تا صدها ثانیه یا حتی بیشتر باشد، بسته به اینکه ایمیل چقدر در مسیر رسیدن به سیستم شما ممکن است با تأخیر مواجه شود.
در صورت استفاده از فلگ -d، مقدار داده‌شده به عنوان بدنه فیلد سرایند Distribution به مقاله اضافه می‌شود.
فلگ -f مترادفی برای فلگ -r است.
نمایش اطلاعات نحوه استفاده و خروج.
در صورت استفاده از فلگ -m، مقدار داده‌شده در فیلد سرایند List-ID به مقاله اضافه می‌شود، در صورتی که چنین فیلد سرایندی از قبل وجود نداشته باشد.
در صورت استفاده از فلگ -n، در صورت بروز خطا نه مقاله‌ای ارسال می‌شود و نه ایمیلی فرستاده می‌شود. همه چیز در خروجی استاندارد نوشته می‌شود.
برنامه‌ای را مشخص می‌کند که مقاله حاصل از پردازش توسط mailpost باید به آن ارسال شود. برای اهداف اشکال‌زدایی، می‌توان از "-o cat"; استفاده کرد. مقدار پیش‌فرض "inews -S -h" است.
پورتی را مشخص می‌کند که nnrpd روی آن گوش می‌دهد و برای ارسال مقاله استفاده می‌شود. در صورت ارائه، -p به inews ارسال می‌شود.
از یک روش ابتکاری برای تعیین مقدار مناسب برای بدنه فیلد سرایند Path استفاده می‌شود. فلگ -r مشخص می‌کند که در صورت عدم امکان تعیین هر مقدار دیگر، از چه مقداری استفاده شود.
در صورت استفاده از فلگ -t، این گزینه مسیر دایرکتوری مورد استفاده برای ذخیره موقت پیام‌های خطایی را که به newsmaster ارسال می‌شوند تعیین می‌کند. این گزینه ممکن است زمانی لازم باشد که مقدار پیش‌فرض به مسیری اشاره دارد که وجود ندارد یا فرایند mailpost به آن دسترسی نوشتن ندارد (به‌ویژه زمانی که با کاربر mail اجرا می‌شود). به‌طور پیش‌فرض دو مسیر آزمایش می‌شوند: pathtmp همان‌طور که در inn.conf تنظیم شده است، و سپس /var/tmp در صورتی که pathtmp قابل نوشتن نباشد.

اطمینان حاصل کنید مسیر مشخص‌شده وجود دارد و برای کاربری که mailpost با آن اجرا می‌شود قابل نوشتن است.

فهرستی از فیلدهای سرایند اضافی که با دو‌نقطه جدا شده‌اند و باید به عنوان فیلدهای سرایند شناخته‌شده در نظر گرفته شوند؛ این فیلدهای سرایند بدون قرار گرفتن "X-" در ابتدای آن‌ها به inews منتقل خواهند شد.

به‌طور پیش‌فرض، فیلدهای سرایند شناخته‌شده عبارتند از:

Archive
Archived-At
Comments
Content-*
Date
Distribution
From
Injection-Date
Keywords
List-ID
Message-ID
MIME-*
Organization
References
Return-Path
Sender
Subject
Summary
فهرستی از فیلدهای سرایند اضافی که با دو‌نقطه جدا شده‌اند و باید حذف شوند.

به‌طور پیش‌فرض، فیلدهای سرایند حذف‌شده عبارتند از:

X-Complaints-To
X-Trace

خود اسکریپت Perl که برای تحویل یک پیام ایمیل به یک گروه خبری استفاده می‌شود.
فایل‌های پیش‌فرض پایگاه داده که مقادیر Message-ID قبلاً دیده شده را ثبت می‌کنند.

مدت‌ها پیش توسط Paul Vixie نوشته شد و سپس توسط James Brister برای یکپارچه‌سازی با INN بازنویسی و اصلاح شد. مستندات توسط Julien Élie بهبود یافت.

inews(1), inn.conf(5), libinn_uwildmat(3), moderators(5), nnrpd(8), readers.conf(5).

2025-03-29 INN 2.7.4