'\" t .\" -*-nroff-*- .TH mbox 5 "February 19th, 2002" Unix "راهنمای کاربران یونیکس" .SH "نام (NAME)" mbox \- قالب ذخیره‌سازی پیام‌های رایانامه (ایمیل) .SH "توضیحات (DESCRIPTION)" این سند قالبی را شرح می‌دهد که به طور سنتی توسط میزبان‌های یونیکس برای ذخیره‌سازی محلی پیام‌های ایمیل استفاده می‌شود. فایل‌های .B mbox معمولاً در مسیر نگهداری موقت ایمیل‌های سیستم (spool)، با نام‌های مختلف در پوشه‌های Mail کاربران، و با نام .B mbox در دایرکتوری خانگی کاربران قرار دارند. .PP یک فایل .B mbox یک فایل متنی شامل تعداد دلخواهی از پیام‌های رایانامه (ایمیل) است. هر پیام از یک مهر پستی (postmark) تشکیل شده که پس از آن پیام ایمیل با قالب‌بندی مطابق با \fBRFC822\fP و \fBRFC2822\fP قرار می‌گیرد. قالب فایل خط‌محور است. خطوط با نویسه تغییر خط (LF با کد اسکی ۱۰) از یکدیگر جدا می‌شوند. .PP یک خط مهر پستی شامل چهار نویسه «From» است که به دنبال آن یک نویسه فاصله، سپس نشانی فرستنده پاکت (envelope) پیام، یک فاصله سفید و در نهایت مهر زمانی می‌آید. این خط معمولاً خط From_ نامیده می‌شود. .PP انتظار می‌رود نشانی فرستنده از نوع .B addr-spec به گونه‌ای که در بخش 3.4.1 از \fBRFC2822\fP تعریف شده باشد. تاریخ باید به فرمت .B date-time خروجی تابع .BR asctime (3) باشد. به دلایل سازگاری با نرم‌افزارهای قدیمی، سال‌های دو رقمی بزرگ‌تر یا مساوی ۷۰ باید به عنوان سال‌های ۱۹۷۰ به بعد تفسیر شوند، در حالی که سال‌های دو رقمی کمتر از ۷۰ باید به عنوان سال‌های ۲۰۰۰ تا ۲۰۶۹ تعبیر گردند. نرم‌افزاری که فایل‌ها را در این قالب می‌خواند باید برای پذیرش اطلاعات منطقه زمانی غیرعددی مانند «CET DST» برای ساعت تابستانی اروپای مرکزی نیز آماده باشد. .PP نمونه: .IP "" 1 >From example@example.com Fri Jun 23 02:56:55 2000 .PP برای جلوگیری از تفسیر نادرست خطوط بدنه پیام که با چهار نویسه «From» به همراه یک نویسه فاصله آغاز می‌شوند، عامل تحویل ایمیل (MDA) باید هر بار رخ دادن «From » در ابتدای خط بدنه را نقل‌قول (quote) یا اسکیپ کند. .sp دو طرح مختلف برای نقل‌قول وجود دارد؛ اولی (\fBMBOXO\fP) تنها خطوط معمولی «From » در بدنه را با افزودن «>» به ابتدای خط نقل‌قول می‌کند؛ دومی (\fBMBOXRD\fP) خطوطی را که از پیش نقل‌قول شده‌اند نیز با افزودن یک «>» دیگر نقل‌قول می‌کند (مانند «>From »، «>>From » و...). دومی این مزیت را دارد که خطوطی مانند: .IP "" 1 >From the command line you can use the '\-p' option .PP به اشتباه نقل‌قول‌زدایی نمی‌شوند، زیرا یک MDA از نوع \fBMBOXRD\fP این خط را پیش از ذخیره به شکل زیر تبدیل می‌کند: .IP "" 1 >>From the command line you can use the '\-p' option .PP علاوه بر \fBMBOXO\fP و \fBMBOXRD\fP، قالب \fBMBOXCL\fP نیز وجود دارد که همان \fBMBOXO\fP همراه با فیلد «Content\-Length:» است که تعداد بایت‌های بدنه پیام را مشخص می‌کند؛ برخی MUAها (مانند .BR mutt (1)) هنگام بازنویسی صندوق‌های پستی، صندوق‌های \fBMBOXO\fP را به صورت خودکار به \fBMBOXCL\fP تبدیل می‌کنند، زیرا \fBMBOXCL\fP می‌تواند بدون مشکل توسط هر MUA مبتنی بر \fBMBOXO\fP خوانده شود. .PP اگر زمان تغییر (که معمولاً از طریق .BR stat (2) تعیین می‌شود) یک فایل .B mbox غیرخالی از زمان دسترسی به آن بیشتر باشد، فایل دارای ایمیل جدید است. بسیاری از MUAها یک سرآیند Status: در هر پیام قرار می‌دهند تا نشان دهند کدام پیام‌ها قبلاً خوانده شده‌اند. .SH "قفل‌گذاری (LOCKING)" از آنجا که فایل‌های .B mbox معمولاً توسط چندین برنامه به صورت موازی مورد دسترسی قرار می‌گیرند، دسترسی به این فایل‌ها عموماً نباید بدون قفل‌گذاری صورت پذیرد. .PP سه سازوکار قفل‌گذاری مختلف (و ترکیبی از آن‌ها) به صورت عمومی استفاده می‌شوند: .IP "\(bu" قفل‌گذاری .BR fcntl (2) بیشتر در سیستم‌های جدیدتر و منطبق بر استاندارد POSIX استفاده می‌شود. استفاده از این روش به ویژه زمانی که فایل‌های .B mbox از طریق سیستم فایل شبکه‌ای (NFS) قابل دسترسی هستند توصیه می‌شود، زیرا ظاهراً تنها روش مطمئن برای باطل کردن حافظه موقت کلاینت‌های NFS است. .IP "\(bu" قفل‌گذاری .BR flock (2) بیشتر در سیستم‌های مبتنی بر BSD به کار می‌رود. .IP "\(bu" قفل نقطه‌ای (Dotlocking) در انواع سیستم‌ها استفاده می‌شود. برای قفل کردن یک فایل .B mbox با نام \fIfolder\fR، برنامه ابتدا یک فایل موقت با نامی یکتا در دایرکتوری محل قرارگیری \fIfolder\fR ایجاد می‌کند. سپس برنامه تلاش می‌کند با استفاده از فراخوان سیستمی .BR link (2) یک پیوند سخت به نام \fIfolder.lock\fR به فایل موقت ایجاد کند. موفقیت فراخوان سیستمی .BR link (2) باید مجدداً با فراخوان‌های .BR stat (2) اعتبارسنجی شود. اگر ایجاد پیوند موفقیت‌آمیز باشد، پوشه ایمیل قفل‌شده در نظر گرفته می‌شود. پس از آن فایل موقت را می‌توان با خیال راحت حذف کرد (unlink). .IP "" برای آزادسازی قفل، برنامه به سادگی فایل \fIfolder.lock\fR را حذف می‌کند (unlink). .PP اگر چندین روش با هم ترکیب شوند، پیاده‌سازان باید اطمینان حاصل کنند که از حالت‌های غیرمسدودکننده (non-blocking) فراخوان‌های سیستمی .BR fcntl (2) و .BR flock (2) استفاده کنند تا از بن‌بست (deadlock) جلوگیری شود. .PP اگر چندین روش ترکیب شوند، یک فایل .B mbox نباید قبل از به دست آوردن تمامی قفل‌های جداگانه، با موفقیت قفل‌شده تلقی شود. هنگامی که یکی از روش‌های قفل‌گذاری جداگانه با شکست مواجه می‌شود، برنامه باید تمام قفل‌هایی را که با موفقیت کسب کرده است آزاد کند و پس از یک تاخیر مناسب، کل فرآیند قفل‌گذاری را از ابتدا آغاز نماید. .PP سازوکار قفل‌گذاری استفاده‌شده در یک سیستم خاص تابع خط‌مشی محلی سیستم است و باید به طور یکنواخت توسط تمام برنامه‌های نصب‌شده روی سیستم که به فایل‌های .B mbox دسترسی دارند استفاده شود. عدم رعایت این موضوع ممکن است منجر به از دست رفتن داده‌های ایمیل و خراب شدن فایل‌های .B mbox گردد. .SH "فایل‌ها (FILES)" .IR /var/spool/mail/$LOGNAME .RS پوشه ایمیل‌های دریافتی \fB$LOGNAME\fP. .RE .PP .IR $HOME/mbox .RS پیام‌های ایمیل بایگانی‌شده کاربر، در دایرکتوری \fB$HOME\fP او. .RE .PP .IR $HOME/Mail/ .RS پوشه‌ای در دایرکتوری \fB$HOME\fP کاربر که معمولاً برای نگهداری پوشه‌های با قالب .B mbox به کار می‌رود. .RE .PP .SH "همچنین ببینید (SEE ALSO)" .BR mutt (1), .BR fcntl (2), .BR flock (2), .BR link (2), .BR stat (2), .BR asctime (3), .BR maildir (5), .BR mmdf (5), .BR RFC822 , .BR RFC976 , .BR RFC2822 .SH "نویسنده (AUTHOR)" Thomas Roessler , Urs Janssen .SH "تاریخچه (HISTORY)" قالب .B mbox نخستین بار در نسخه ۶ یونیکس AT&T ظاهر شد. .br گونه‌ای از این قالب در \fBRFC976\fP مستند شده بود.