MAIL.LOCAL(8) System Manager's Manual MAIL.LOCAL(8)
mail.local - ذخیره ایمیل در صندوق پستی

mail.local [-Ll] [-f from] user ...

mail.local ورودی استاندارد را تا انتهای فایل (EOF) می‌خواند و آن را به فایل mail هر user الحاق می‌کند. user باید یک نام کاربری معتبر باشد.

گزینه‌ها به شرح زیر هستند:

from
مشخص کردن نام فرستنده.
هنگام قفل کردن spool، فایل username.lock ایجاد نشود.
برای سازگاری، درخواست می‌کند که فایل‌های با نام username.lock برای قفل کردن استفاده شوند. (این رفتار پیش‌فرض است.)

پیام‌های ایمیل جداگانه در صندوق پستی با یک خط خالی و به دنبال آن خطی که با رشته “From ” آغاز می‌شود، از یکدیگر جدا می‌شوند. یک خط حاوی رشته “From  ،” نام فرستنده و یک برچسب زمان به ابتدای هر پیام ایمیل تحویل داده شده اضافه می‌شود. یک خط خالی به انتهای هر پیام الحاق می‌شود. یک نویسه بزرگتر از (‘>’) به ابتدای هر خطی از پیام که ممکن است با یک خط جداکننده “From ” اشتباه گرفته شود، اضافه می‌شود.

تلاش‌های زیادی انجام شده است تا اطمینان حاصل شود که mail.local در صورتی که مجوزهای دایرکتوری spool برابر 1777 یا 755 باشد، تا حد امکان امن عمل کند. حالت پیش‌فرض 755 امن‌تر است، اما کلاینت‌های ایمیل را از استفاده از قفل‌گذاری به سبک username.lock بازمی‌دارد. استفاده از 1777 در محیط spool مشترک NFS انعطاف‌پذیرتر است، بنابراین بسیاری از سایت‌ها از آن استفاده می‌کنند. با این حال خطراتی به همراه دارد، مانند پر کردن دیسک spool توسط مهاجمان. برخی از این مشکلات را می‌توان با تبدیل spool به یک سیستم‌فایل جداگانه و قرار دادن سهمیه (quota) روی آن کاهش داد. استفاده از هر مجوزی غیر از 1777 و 755 برای دایرکتوری spool توصیه نمی‌شود اما ممکن است به درستی کار کند.

صندوق پستی همیشه در حین الحاق ایمیل با استفاده از flock(2) قفل می‌شود. مگر اینکه فلگ -L مشخص شده باشد، یک فایل username.lock نیز استفاده می‌شود.

اگر سرویس biff(1) توسط getservbyname(3) بازگردانده شود، سرور biff از تحویل ایمیل مطلع می‌شود.

برای تنظیم منطقه زمانی مناسب روی برچسب زمان استفاده می‌شود.

/tmp/local.XXXXXXXXXX
فایل‌های موقت
/var/mail/user
دایرکتوری صندوق پستی کاربر

The mail.local utility exits 0 on success, and >0 if an error occurs.

biff(1), mail(1), flock(2), getservbyname(3), comsat(8), smtpd(8)

یک فرامجموعه (superset) از mail.local (که خواندن صندوق پستی و همچنین تحویل ایمیل را انجام می‌داد) در Version 7 AT&T UNIX به عنوان برنامه mail(1) ظاهر شد.

استفاده از سهمیه‌بندی در /var/mail در صورت استفاده از sendmail(8) به عنوان یک MTA می‌تواند مشکل‌ساز باشد، زیرا از mail.local می‌خواهد در صورت امکان پیامی را به چندین گیرنده تحویل دهد. این امر در محیط دارای سهمیه باعث ایجاد مشکلاتی می‌شود چرا که ممکن است به دلیل سهمیه دیسک، پیام به برخی کاربران تحویل داده شود اما به برخی دیگر نه. حتی با وجود اینکه پیام به برخی از گیرندگان تحویل داده شده است، mail.local با کد خروج بزرگتر از ۰ خارج می‌شود و باعث می‌شود sendmail(8) بعداً مجدداً تلاش برای تحویل کند. این بدان معناست که برخی کاربران هر بار که sendmail(8) صف خود را اجرا می‌کند، همان پیام را دوباره دریافت خواهند کرد. این مشکل برای کاربران smtpd(8) وجود ندارد.

اگر در حال اجرای sendmail(8) هستید و سهمیه دیسک روی /var/mail دارید، ضروری است که فلگ ایمیل‌رسان (mailer flag) “m” را برای ایمیل‌رسان ‘local’ غیرفعال (unset) کنید. برای انجام این کار، خطی را که با “Mlocal” در /etc/mail/sendmail.cf شروع می‌شود پیدا کرده و “m” را از بخش فلگ‌ها که با “F=” مشخص شده است حذف کنید. همچنین، می‌توانید فلگ‌های پیش‌فرض mailer را با افزودن این خط لغو (override) کنید:

define(`LOCAL_MAILER_FLAGS', `rn9S')dnl

به فایل “.mc” خود (این فایل منبعی است که برای تولید /etc/mail/sendmail.cf) استفاده می‌شود.

September 16, 2014 Linux 6.12.107+deb13-amd64