MPOP(1) General Commands Manual MPOP(1)

mpop - یک کلاینت POP3

حالت دریافت ایمیل (پیش‌فرض):
mpop [option...] [--] [account...]
mpop --host=host [option...]
حالت پیکربندی:
mpop --configure <mailaddress>
حالت اطلاعات سرور:
mpop [option...] --serverinfo [account...]
mpop --host=host [option...] --serverinfo
حالت عامل تحویل ایمیل (MDA):
mpop --mda --delivery=method,method_arguments... [envelope-from-address]

در حالت عملکرد دریافت ایمیل، mpop ایمیل‌ها را از یک یا چند صندوق پستی POP3 دریافت کرده، در صورت تمایل پالایشی روی آن‌ها اعمال می‌کند، و آن‌ها را از طریق یک عامل تحویل ایمیل (MDA)، به یک پوشهٔ maildir یا به یک فایل mbox تحویل می‌دهد. ایمیل‌هایی که پیش‌تر با موفقیت تحویل داده شده‌اند، حتی در صورت وقوع خطا یا توقف mpop در میانهٔ نشست، برای بار دوم دریافت نخواهند شد.
در حالت اطلاعات سرور، mpop اطلاعاتی را دربارهٔ یک یا چند سرور POP3 چاپ می‌کند.
اگر هیچ نام حسابی در خط فرمان مشخص نشده باشد، حسابی با نام default استفاده خواهد شد.
شاید بهترین راه برای شروع، نگاهی به بخش مثال‌ها (EXAMPLES) باشد.

کدهای خروج استاندارد sendmail، همان‌گونه که در sysexits.h تعریف شده‌اند، استفاده می‌شوند.

گزینه‌ها تنظیمات فایل پیکربندی را برای هر حسابِ استفاده‌شده لغو می‌کنند.

گزینه‌های عمومی
چاپ اطلاعات نسخه، شامل اطلاعاتی دربارهٔ کتابخانه‌های استفاده‌شده.
چاپ راهنما.
چاپ تنظیمات پیکربندی که قرار است استفاده شوند، بدون انجام هرگونه اقدام دیگر. به جای گذرواژهٔ شما یک ستاره ('*') چاپ خواهد شد.
چاپ اطلاعات اشکال‌زدایی فراوان، از جمله تمام گفتگوها با سرور. در استفاده از این گزینه محتاط باشید: خروجی (که بالقوه خطرناک است) پاکسازی نخواهد شد و ممکن است گذرواژهٔ شما در قالبی با قابلیت رمزگشایی آسان چاپ شود!
این گزینه به طور ضمنی --half-quiet را فعال می‌کند، چرا که خروجی نشان‌دهندهٔ پیشرفت با خروجی اشکال‌زدایی تداخل پیدا خواهد کرد.
تغییر حالت عملکرد
تولید یک پیکربندی برای نشانی ایمیل مشخص‌شده و چاپ آن. این خروجی می‌تواند ویرایش شود یا بدون تغییر در فایل پیکربندی کپی گردد. توجه داشته باشید که این گزینه تنها برای دامنه‌های ایمیلی کار می‌کند که رکوردهای SRV مناسب را منتشر کرده باشند؛ RFC 8314 را ببینید.
چاپ اطلاعات دربارهٔ سرور(های) POP3 و خروج. این اطلاعات شامل قابلیت‌های پشتیبانی‌شده (مانند pipelining، روش‌های احراز هویت، دستور TOP و...)، پارامترها (مدت زمانی که ایمیل‌ها حذف نخواهند شد، حداقل زمان بین ورودها و...)، و گواهی TLS (در صورت فعال بودن TLS) است.
عمل کردن به عنوان یک عامل تحویل ایمیل (MDA): خواندن یک ایمیل از ورودی استاندارد و تحویل آن مطابق با گزینهٔ --delivery. دستور delivery را ببینید. یک تفاوت جزئی وجود دارد: نشانی فرستندهٔ پاکت (envelope from address) از ایمیل استخراج نمی‌شود، بلکه به عنوان یک آرگومان خط فرمان ارائه می‌گردد، یا در صورت عدم ارائه آرگومان، روی MAILER-DAEMON تنظیم می‌شود. مثال‌ها:
$ mpop --mda --delivery=mbox,~/Mail/inbox
$ mpop --mda --delivery=maildir,~/Mail/incoming
$ mpop --mda --delivery=mda,"msmtp --host=localhost --from=me@localhost -- you@localhost"
$ mpop --mda --delivery=mda,"msmtp --host=localhost --from=%F -- you@localhost" me@localhost
گزینه‌های پیکربندی
استفاده از فایل داده‌شده به جای ~/.mpoprc یا $XDG_CONFIG_HOME/mpop/config به عنوان فایل پیکربندی کاربر.
استفاده از این سرور به همراه تنظیمات خط فرمان؛ بدون استفاده از داده‌های هیچ فایل پیکربندی. این گزینه بارگذاری فایل پیکربندی را غیرفعال می‌کند. شما نمی‌توانید هم‌زمان از این گزینه و نام‌های حساب در خط فرمان استفاده کنید.
تنظیم شمارهٔ پورت برای اتصال. دستور port را ببینید.
تنظیم یا لغو تنظیم یک نشانی IP برای مقید کردن (bind) سوکت به آن. دستور source_ip را ببینید.
تنظیم یا لغو تنظیم یک پروکسی SOCKS برای استفاده. دستور proxy_host را ببینید.
تنظیم یا لغو تنظیم شمارهٔ پورت برای میزبان پروکسی. دستور proxy_port را ببینید.
تنظیم یا لغو تنظیم نام یک سوکت محلی یونیکس (unix domain socket) برای اتصال. دستور socket را ببینید.
تنظیم مهلت زمانی شبکه (timeout). دستور timeout را ببینید.
فعال یا غیرفعال کردن pipelining در POP3. دستور pipelining را ببینید.
فعال یا غیرفعال کردن سرایند Received. دستور received_header را ببینید.
تنظیم روش احراز هویت به صورت خودکار (با "on") یا انتخاب دستی یک روش احراز هویت. دستور auth را ببینید.
تنظیم یا لغو تنظیم نام کاربری برای احراز هویت. دستور user را ببینید.
ارزیابی و اجرای دستور برای دریافت گذرواژهٔ احراز هویت. دستور passwordeval را ببینید.
فعال یا غیرفعال کردن TLS/SSL. دستور tls را ببینید.
فعال یا غیرفعال کردن STARTTLS برای TLS. دستور tls_starttls را ببینید.
تنظیم یا لغو تنظیم یک فایل اعتبارسنجی (trust file) برای TLS. دستور tls_trust_file را ببینید.
منسوخ شده. تنظیم یا لغو تنظیم فایل فهرست ابطال گواهی (CRL) برای TLS. دستور tls_crl_file را ببینید.
تنظیم یا لغو تنظیم اثر انگشت (fingerprint) یک گواهی معتمد TLS. دستور tls_fingerprint را ببینید.
تنظیم یا لغو تنظیم یک فایل کلید برای TLS. دستور tls_key_file را ببینید.
تنظیم یا لغو تنظیم یک فایل گواهی برای TLS. دستور tls_cert_file را ببینید.
فعال یا غیرفعال کردن بررسی‌های گواهی سرور برای TLS. دستور tls_certcheck را ببینید.
تنظیم یا لغو تنظیم اولویت‌های TLS. دستور tls_priorities را ببینید.
تنظیم یا لغو تنظیم میزبان جایگزین برای راستی‌آزمایی میزبان TLS. دستور tls_host_override را ببینید.
منسوخ شده، به جای آن از --tls-priorities استفاده کنید. تنظیم یا لغو تنظیم حداقل اندازهٔ بیت عدد اول دیفی-هلمن (DH). دستور tls_min_dh_prime_bits را ببینید.
گزینه‌های ویژهٔ حالت دریافت ایمیل
اطلاعات وضعیت یا پیشرفت را چاپ نمی‌کند.
وضعیت را چاپ می‌کند اما اطلاعات پیشرفت را چاپ نمی‌کند.
پرس‌وجو از تمام حساب‌های موجود در فایل پیکربندی.
تنها احراز هویت می‌کند؛ ایمیلی دریافت نمی‌کند. برای SMTP-after-POP کاربرد دارد.
تنها تعداد و اندازهٔ ایمیل‌ها را در هر حساب چاپ می‌کند؛ ایمیلی دریافت نمی‌کند.
تنها پردازش پیام‌های جدید. دستور only_new را ببینید.
ایمیل‌ها را از سرورهای POP3 (برای مدت زمان مشخص‌شده) حذف نمی‌کند، صرف‌نظر از گزینه‌ها یا تنظیمات دیگر. دستور keep را ببینید.
تنظیم یا لغو تنظیم اندازهٔ حذف (kill size). دستور killsize را ببینید.
تنظیم یا لغو تنظیم اندازهٔ نادیده‌گیری (skip size). دستور skipsize را ببینید.
تنظیم یک پالایه (فیلتر) که با بررسی سرایندهای ایمیل تصمیم می‌گیرد هر ایمیل دریافت، نادیده گرفته، یا حذف شود. دستور filter را ببینید.
نحوهٔ تحویل پیام‌های دریافت‌شده از این حساب. دستور delivery را ببینید. توجه داشته باشید که برای جدا کردن روش از آرگومان‌های آن، به جای فاصله از کاما استفاده می‌شود.
فایلی برای ذخیرهٔ UIDLها در آن. دستور uidls_file را ببینید. پیشنهادی برای یک فایل پیکربندی مناسب می‌تواند با استفاده از گزینهٔ --configure تولید شود. فایل پیکربندی پیش‌فرض ~/.mpoprc یا $XDG_CONFIG_HOME/mpop/config است. تنظیمات موجود در این فایل می‌توانند توسط گزینه‌های خط فرمان تغییر داده شوند.
فایل پیکربندی یک فایل متنی ساده است. خطوط خالی و خطوط توضیح (که نخستین نویسهٔ غیرفاصله در آن‌ها '#' است) نادیده گرفته می‌شوند. هر خط دیگر باید شامل یک دستور باشد و می‌تواند حاوی یک آرگومان برای آن دستور باشد. آرگومان می‌تواند درون علامت نقل‌قول جفتی (") قرار گیرد.
اگر نام یک فایل با علامت مدک (~) آغاز شود، این مدک با $HOME جایگزین خواهد شد.
اگر دستوری آرگومان on را بپذیرد، یک آرگومان خالی را نیز می‌پذیرد و با آن طوری رفتار می‌کند که گویی on بوده است.
دستورها در حساب‌ها سازمان‌دهی می‌شوند. هر حساب با دستور account آغاز می‌شود و تنظیمات مربوط به یک حساب POP3 را تعریف می‌کند.

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

تنظیم پیش‌فرض‌ها. دستورهای پیکربندی بعدی، مقادیر پیش‌فرض را برای تمام تعاریف حساب‌های پس از خود تعیین خواهند کرد.
آغاز تعریف یک حساب جدید با نام داده‌شده. مقادیر پیش‌فرض فعلی اعمال می‌شوند.
اگر پس از نام حساب، علامت دونقطه و فهرستی از حساب‌های از پیش تعریف‌شده آورده شود، حساب جدید با مقادیر پیش‌فرض اعمال‌شده، تمام تنظیمات را از حساب‌های موجود در فهرست به ارث می‌برد.
خط فعلی فایل پیکربندی را با نخستین خط از خروجی استاندارد (stdout) دستور cmd جایگزین می‌کند. این قابلیت می‌تواند برای رمزگشایی تنظیمات یا تولید آن‌ها از طریق اسکریپت‌ها استفاده شود. برای نمونه، eval echo host localhost خط فعلی را با host localhost جایگزین می‌کند.
توجه داشته باشید که هر خط eval هنگام خواندن فایل پیکربندی ارزیابی خواهد شد.
توجه داشته باشید که برای گذرواژه‌ها می‌توانید به‌جای eval password cmd از دستور passwordeval نیز استفاده کنید. مزیت این کار این است که دستور تنها در صورت نیاز ارزیابی می‌شود.
سرور POP3 که نامه‌ها باید از آن دریافت شوند. آرگومان می‌تواند یک نام میزبان یا یک آدرس شبکه باشد. هر تعریف حساب باید شامل این دستور باشد.
درگاهی که سرور POP3 روی آن گوش می‌دهد. مقدار پیش‌فرض 110 ("pop3") است، مگر اینکه از TLS بدون STARTTLS استفاده شود، که در این صورت 995 ("pop3s") خواهد بود.
تنظیم یک آدرس IP مبدأ برای مقید کردن (bind) اتصال خروجی به آن. تنها در موارد خاص روی سیستم‌های چندمیزبانی (multi-home) کاربرد دارد. یک آرگومان خالی این ویژگی را غیرفعال می‌کند.
استفاده از پراکسی SOCKS. تمام ترافیک شبکه، شامل پرس‌وجوهای DNS، از این میزبان پراکسی عبور خواهد کرد، به‌جز پرس‌وجوی DNS که ممکن است برای تحلیل نام میزبان خود پراکسی لازم باشد (با استفاده از یک آدرس IP به‌عنوان نام میزبان پراکسی می‌توان از این امر جلوگیری کرد). یک آرگومان hostname خالی، استفاده از پراکسی را غیرفعال می‌کند. نسخهٔ پروتکل SOCKS پشتیبانی‌شده، ۵ است. اگر می‌خواهید از این قابلیت با Tor استفاده کنید، بخش "Using mpop with Tor" را در ادامه ببینید.
تنظیم شماره درگاه برای میزبان پراکسی. یک آرگومان number خالی این مقدار را به درگاه پیش‌فرض، یعنی 1080 ("socks")، بازنشانی می‌کند.
تنظیم نام فایل یک سوکت دامنهٔ یونیکس برای اتصال به آن. این گزینه بر هر دو زوجِ host/port و proxy_host/proxy_port تقدم دارد و آن‌ها را لغو می‌کند.
تنظیم یا لغو مهلت زمانی شبکه، به ثانیه. مقدار پیش‌فرض ۱۸۰ ثانیه است. آرگومان off بدین معناست که هیچ مهلت زمانی تعیین نخواهد شد، که یعنی از مقدار پیش‌فرض سیستم‌عامل استفاده می‌شود.
فعال یا غیرفعال کردن پایپ‌لاینینگ در POP3. شما معمولاً هرگز نیازی به تغییر تنظیم پیش‌فرض که auto است نخواهید داشت: mpop قابلیت پایپ‌لاینینگ را برای سرورهای POP3 که این توانمندی را اعلان می‌کنند فعال، و برای سایر سرورها غیرفعال می‌کند. پایپ‌لاینینگ می‌تواند سرعت یک نشست POP3 را به طور چشمگیری افزایش دهد.
انتخاب روش احراز هویت. آرگومان پیش‌فرض on روش را به طور خودکار انتخاب می‌کند.
معمولاً از یک نام کاربری و یک گذرواژه برای احراز هویت استفاده می‌شود. نام کاربری در فایل پیکربندی با دستور user مشخص می‌شود. پنج روش مختلف برای تعیین گذرواژه وجود دارد:
۱. افزودن گذرواژه به دسته‌کلید (keyring) سیستم. دسته‌کلیدهای پشتیبانی‌شده در حال حاضر عبارتند از دسته‌کلید Gnome و Mac OS X Keychain. برای دسته‌کلید Gnome، از دستور secret-tool (بخشی از libsecret گنوم) برای ذخیرهٔ گذرواژه‌ها استفاده کنید: secret-tool store --label=mpop host pop.freemail.example service pop3 user joe.smith. در Mac OS X، از دستور زیر استفاده کنید: security add-internet-password -s pop.freemail.example -r pop3 -a joe.smith -w. در هر دو مثال، pop.freemail.example را با نام سرور POP3 و joe.smith را با نام کاربری خود جایگزین کنید.
۲. ذخیرهٔ گذرواژه در یک فایل رمزنگاری‌شده، و استفاده از passwordeval برای مشخص کردن دستوری جهت رمزگشایی آن فایل، مثلاً با استفاده از GnuPG. بخش EXAMPLES را ببینید.
۳. ذخیرهٔ گذرواژه در فایل پیکربندی با استفاده از دستور password. (معمولاً ذخیره کردن گذرواژه‌ها در فایل‌های متن‌آشکار ایدهٔ مناسبی دانسته نمی‌شود. اگر به هر حال این کار را انجام می‌دهید، باید اطمینان یابید که فایل تنها توسط خودتان قابل خواندن است.)
۴. ذخیرهٔ گذرواژه در ~/.netrc. این روش احتمالاً منسوخ شده است.
۵. تایپ کردن گذرواژه در ترمینال در زمان نیاز.
توصیه می‌شود از روش ۱ یا ۲ استفاده کنید.
روش‌های احراز هویت متعددی وجود دارند. بیشتر سرورها تنها از برخی از آن‌ها پشتیبانی می‌کنند.
روش‌های نام کاربری / گذرواژه زیر پشتیبانی می‌شوند: user (یک روش متن‌آشکار ساده که توسط همهٔ سرورها پشتیبانی می‌شود)، plain (یک روش متن‌آشکار سادهٔ دیگر، که تقریباً توسط تمام سرورها پشتیبانی می‌شود)، scram-sha-1 و scram-sha-1-plus (روشی که از گذرواژه‌های متن‌آشکار پرهیز می‌کند و سرور را ملزم می‌سازد تا اثبات کند گذرواژهٔ (درهم‌سازی و نمک‌گذاری‌شده) را در اختیار دارد، که از برخی حملات مرد میانی جلوگیری می‌کند. گونهٔ -plus علاوه بر این، از اطلاعات اتصال کانال TLS برای ضمانت‌های امنیتی حتی بهتر بهره می‌برد)، scram-sha-256 و scram-sha-256-plus (مشابه قبل، اما با تابع درهم‌سازی قوی‌تر)، apop (روشی منسوخ‌شده که از گذرواژه‌های متن‌آشکار پرهیز می‌کند، اما دیگر امن به شمار نمی‌رود)، cram-md5 (روشی منسوخ‌شده که از گذرواژه‌های متن‌آشکار پرهیز می‌کند، اما دیگر امن به شمار نمی‌رود)، digest-md5 (روشی منسوخ و بیش از حد پیچیده که از گذرواژه‌های متن‌آشکار پرهیز می‌کند، اما دیگر امن به شمار نمی‌رود)، login (روشی متن‌آشکار و غیر استاندارد، مشابه با plain ولی ضعیف‌تر از آن)، ntlm (روشی مبهم و غیر استاندارد که اکنون شکسته محسوب می‌شود؛ گاهی نیازمند یک پارامتر دامنهٔ خاص است که از طریق ntlmdomain ارسال می‌شود).
اگر هیچ روشی تعیین نشود، mpop بر اساس مزایای امنیتی یکی را به طور خودکار برمی‌گزیند. با TLS، ترتیب اولویت به این صورت است: scram-sha-256-plus، scram-sha-1-plus، scram-sha-256، scram-sha-1، plain، و به دنبال آن برخی روش‌های منسوخ‌شده در صورتی که گزینهٔ دیگری در دسترس نباشد. بدون TLS، فقط scram-sha-256 و scram-sha-1 در نظر گرفته می‌شوند.
در حال حاضر سه روش احراز هویت وجود دارند که بر اطلاعات نام کاربری / گذرواژه مبتنی نیستند و باید به صورت دستی انتخاب شوند: oauthbearer یا روش پیشین آن xoauth2 (یک توکن OAuth2 از ارائه‌دهندهٔ ایمیل به عنوان گذرواژه استفاده می‌شود. برای جزئیات مربوط به نحوهٔ دریافت این توکن، مستندات ارائه‌دهندهٔ ایمیل خود را ببینید. از دستور passwordeval می‌توان برای انتقال توکن‌هایی که به طور منظم تغییر می‌کنند از طریق یک اسکریپت یا یک متغیر محیطی به mpop استفاده کرد)، external (احراز هویت در خارج از پروتکل رخ می‌دهد، معمولاً از طریق ارسال یک گواهی کلاینت TLS، و این روش صرفاً تأیید می‌کند که این احراز هویت با موفقیت انجام شده است)، و gssapi (چارچوب Kerberos مدیریت احراز هویت امن را بر عهده می‌گیرد و تنها به یک نام کاربری نیاز است).
اینکه یک روش خاص پشتیبانی می‌شود یا خیر، به کتابخانهٔ احراز هویت زیربنایی و نسخهٔ آن بستگی دارد. از --version برای اطلاع از اینکه کدام روش‌ها پشتیبانی می‌شوند استفاده کنید.
تنظیم نام کاربری برای احراز هویت. یک آرگومان خالی، نام کاربری را پاک می‌کند.
تنظیم گذرواژه برای احراز هویت. یک آرگومان خالی، گذرواژه را پاک می‌کند. برای جلوگیری از ذخیرهٔ گذرواژه‌ها به صورت متن‌آشکار در فایل پیکربندی، استفاده از دستور passwordeval یا یک دسته‌کلید را به جای این دستور در نظر بگیرید.
تنظیم گذرواژه برای احراز هویت با استفاده از خروجی استاندارد (stdout) دستور cmd. از این گزینه می‌توان مثلاً برای رمزگشایی در لحظهٔ فایل‌های گذرواژه یا واکشی از دسته‌کلیدها، و در نتیجه پرهیز از ذخیرهٔ گذرواژه‌ها به صورت متن‌آشکار استفاده کرد.
تنظیم یک دامنه برای روش احراز هویت ntlm. این گزینه منسوخ شده است.
فعال یا غیرفعال کردن TLS (که با نام SSL نیز شناخته می‌شود) برای اتصالات امن.
امنیت لایهٔ انتقال (TLS) «... محرمانگی ارتباطات را روی اینترنت فراهم می‌کند. این پروتکل به برنامه‌های کارخواه/کارساز اجازه می‌دهد به شکلی ارتباط برقرار کنند که برای جلوگیری از استراق سمع، دستکاری یا جعل پیام طراحی شده است» (نقل قول از RFC2246).
یک سرور می‌تواند از TLS در یکی از دو حالت استفاده کند: از طریق دستور STARTTLS (نشست با راه‌اندازی عادی پروتکل آغاز می‌شود، و سپس TLS با استفاده از دستور STARTTLS پروتکل آغاز به کار می‌کند)، یا به صورت آنی (TLS پیش از راه‌اندازی عادی پروتکل فعال می‌شود؛ این حالت نیازمند یک درگاه مجزا است). حالت نخست پیش‌فرض است، اما شما می‌توانید با غیرفعال کردن tls_starttls به حالت دوم تغییر وضعیت دهید.
هنگامی که TLS آغاز می‌شود، سرور گواهی‌ای را برای احراز هویت خود ارسال می‌کند. برای تأیید هویت سرور، از برنامهٔ کلاینت انتظار می‌رود بررسی کند که گواهی از لحاظ شکلی صحیح بوده و توسط یک مرجع صدور گواهی (CA) که مورد اعتماد کاربر است صادر شده باشد. (همچنین ممکن است زنجیره‌های گواهی با CAهای میانی وجود داشته باشد.)
فهرست CAهای مورد اعتماد با استفاده از دستور tls_trust_file مشخص می‌شود. مقدار پیش‌فرض "system" است و پیش‌فرض سراسری سیستم را انتخاب می‌کند، اما می‌توانید CAهای مورد اعتماد را خودتان نیز انتخاب کنید.
یک مشکل اساسی در این میان این است که شما باید به CAها اعتماد کنید. یک CA نیز مانند هر سازمان دیگری می‌تواند نالایق، بدخواه، نفوذیافته توسط افراد شرور، یا مجبور از سوی سازمان‌های دولتی باشد تا بدون اطلاع کاربران نهایی امنیت آن‌ها را به خطر اندازد. همهٔ این اتفاقات افتاده‌اند و همچنان در سراسر جهان رخ می‌دهند. این ایده که برای امن بودن ارتباطات خود باید به سازمان‌های مرکزی اعتماد کنید، از اساس دچار نقص است.
به‌جای اعتماد کردن به یک CA، می‌توانید تنها به یک گواهی منفرد برای سروری که می‌خواهید به آن متصل شوید اعتماد کنید. برای این منظور، اثرانگشت گواهی را با tls_fingerprint مشخص کنید. این کار تضمین می‌کند که هیچ حمله‌کنندهٔ مرد میانی نتواند با ارائهٔ یک گواهی جعلیِ صادرشده توسط یکی از CAهای حاضر در فهرست مورد اعتمادتان، هویت سرور را جعل کند. با این حال، باید هر زمان که گواهی سرور تغییر می‌کند اثرانگشت را به‌روز کنید، و هر بار باید مطمئن شوید که این تغییر مشروع است؛ مثلاً زمانی که گواهی قبلی منقضی شده باشد. این امر ناخوشایند است، اما بهایی است که باید پرداخته شود.
اطلاعات مربوط به یک گواهی سرور را می‌توان با --serverinfo --tls --tls-certcheck=off به دست آورد. این اطلاعات شامل CA صادرکنندهٔ گواهی (تا بتوانید به آن CA از طریق tls_trust_file اعتماد کنید)، و اثرانگشت گواهی است (تا بتوانید به آن گواهی خاص از طریق tls_fingerprint اعتماد کنید).
قابلیت TLS به سرور نیز اجازه می‌دهد تا هویت کلاینت را تأیید کند. برای این منظور، کلاینت باید گواهی صادرشده توسط یک CA را که سرور به آن اعتماد دارد ارائه دهد. برای ارائهٔ آن گواهی، کلاینت به فایل کلید متناظر با آن نیز نیاز دارد. می‌توانید فایل‌های گواهی و کلید را با استفاده از tls_cert_file و tls_key_file تنظیم کنید. از این سازوکار می‌توان برای احراز هویت کاربران نیز استفاده کرد، تا دیگر احراز هویت سنتی با نام کاربری / گذرواژه لازم نباشد. سازوکار external را در auth ببینید.
همچنین می‌توانید با مشخص کردن URIهای دستگاه GnuTLS در tls_cert_file و tls_key_file، از گواهی‌های کلاینت ذخیره‌شده روی برخی دستگاه‌های احراز هویت خارجی استفاده کنید. می‌توانید URIهای درست را با استفاده از p11tool --list-privkeys --login پیدا کنید (p11tool همراه با GnuTLS عرضه می‌شود). اگر دستگاه شما برای دسترسی به داده‌ها نیازمند یک PIN باشد، می‌توانید آن را با استفاده از یکی از سازوکارهای گذرواژه (مانند passwordeval، password) مشخص کنید..IP "tls_starttls [(on|off)]" انتخاب گونهٔ TLS: آغاز TLS از درون نشست (on، پیش‌فرض)، یا تونل‌کردن نشست از طریق TLS (off).
فعال‌سازی اعتبارسنجی گواهی کارساز با استفاده از فهرستی از مرجع‌های صدور گواهی (CA) معتبر. پیش‌فرض، مقدار ویژهٔ "system" است که پیش‌فرض سامانه را انتخاب می‌کند. یک آرگومان خالی، اعتماد به CAها را غیرفعال می‌کند. اگر فایلی را انتخاب کنید، باید در قالب PEM باشد، و همچنین باید از tls_crl_file استفاده کنید.
تعیین یک فایل فهرست ابطال گواهی (CRL) برای TLS، جهت بررسی گواهی‌های ابطال‌شده (یک آرگومان خالی، که مقدار پیش‌فرض است، این را غیرفعال می‌کند).
پروتکل OCSP جایگزینی برای فایل‌های CRL است. هنگامی که GnuTLS استفاده می‌شود، اطلاعات ضمیمه‌شدهٔ OCSP به‌طور خودکار بررسی خواهند شد و افزونهٔ MustStaple در TLS پشتیبانی می‌شود، با این حال در صورت مفقود بودن اطلاعات ضمیمه‌شدهٔ OCSP هیچ پرس‌وجوی دستی برای OCSP ارسال نخواهد شد. در سایر کتابخانه‌های TLS، ممکن است رفتار متفاوت باشد.
تعیین اثر انگشت (fingerprint) یک گواهی منفرد برای پذیرش در TLS. این گواهی بدون در نظر گرفتن محتویات آن مورد اعتماد قرار خواهد گرفت (این گزینه بر tls_trust_file اولویت دارد). اثر انگشت باید از نوع SHA256 باشد، اما برای سازگاری عقبرو می‌تواند از نوع SHA1 یا MD5 نیز باشد (لطفاً از این مورد پرهیز کنید). قالب باید به‌صورت 01:23:45:67:.... باشد. برای دریافت اثر انگشت گواهی کارساز، از --serverinfo --tls --tls-certcheck=off --tls-fingerprint= استفاده کنید.
ارسال یک گواهی کارخواه به کارساز (از این گزینه همراه با tls_cert_file} استفاده کنید). این فایل باید شامل کلید خصوصی یک گواهی در قالب PEM باشد. یک آرگومان خالی این ویژگی را غیرفعال می‌کند.
ارسال یک گواهی کارخواه به کارساز (از این گزینه همراه با tls_key_file استفاده کنید). این فایل باید شامل یک گواهی در قالب PEM باشد. یک آرگومان خالی این ویژگی را غیرفعال می‌کند.
فعال یا غیرفعال کردن بررسی‌های گواهی کارساز. این بررسی‌ها به‌طور پیش‌فرض فعال هستند. غیرفعال کردن آن‌ها بر tls_trust_file و tls_fingerprint ارجحیت خواهد داشت. هشدار: هنگامی که بررسی‌ها غیرفعال باشند، نشست‌های TLS امن نخواهند بود!
تنظیم اولویت‌ها برای پارامترهای نشست TLS. پیش‌فرض توسط کتابخانهٔ TLS تعیین می‌شود و می‌توان آن را با به‌کارگیری یک آرگومان خالی برای این دستور برگزید. تفسیر رشتهٔ priorities به کتابخانهٔ TLS بستگی دارد. برای پی بردن به این که از کدام کتابخانهٔ TLS استفاده می‌کنید از --version استفاده کنید.
برای GnuTLS، بخش Priority Strings را در راهنما ببینید.
برای libtls، رشتهٔ priorities فهرستی جداشده با فاصله از رشته‌های پارامتر است که با یکی از پیشوندهای PROTOCOLS=، CIPHERS= یا ECDHECURVES= مشخص می‌شوند. این رشته‌های پارامتر به توابع tls_config_parse_protocols، tls_config_set_ciphers و tls_config_set_ecdhecurves منتقل خواهند شد. بخش‌های ناشناخته از رشتهٔ priorities نادیده گرفته می‌شوند. مثال: "PROTOCOLS=TLSv1.3 CIPHERS=ECDHE-RSA-AES128-SHA256 ECDHECURVES=P-384".
به‌طور پیش‌فرض، اعتبارسنجی میزبان TLS از نام میزبانی که توسط دستور host مشخص شده استفاده می‌کند. این دستور امکان استفاده از یک نام میزبان دیگر را برای اعتبارسنجی فراهم می‌سازد. این مورد تنها در موارد خاص کاربرد دارد.
منسوخ شده، به‌جای آن از tls_priorities استفاده کنید. تنظیم یا لغو تنظیم کمینهٔ تعداد بیت‌های اول دیفی-هلمن (DH) پذیرفته‌شده برای نشست‌های TLS. مقدار پیش‌فرض توسط کتابخانهٔ TLS تعیین می‌شود و با استفاده از یک آرگومان خالی برای این دستور قابل گزینش است. تنها در صورتی پیش‌فرض را کاهش دهید (برای مثال به ۵۱۲ بیت) که هیچ راه دیگری برای کارکرد TLS با کارساز دوردست وجود نداشته باشد.
نحوهٔ تحویل پیام‌های دریافتی از این حساب.
تحویل نامه‌ها از طریق یک عامل تحویل نامه (MDA).
تمام رخدادهای %F در دستور با نشانی envelope from پیام جاری (یا در صورت عدم وجود، MAILER-DAEMON) جایگزین خواهد شد. توجه داشته باشید که تضمین می‌شود این نشانی تنها شامل حروف a-z و A-Z، ارقام 0-9 و هر یک از نویسه‌های ".@_-+/" باشد، هرچند که این مقدار تنها زیرمجموعه‌ای از نویسه‌های مجاز در یک نشانی نامه از نظر تئوری است. سایر نویسه‌ها، از جمله مواردی که توسط پوسته تفسیر می‌شوند، با "_" جایگزین می‌شوند. با این وجود، باید %F را داخل گیومه‌های تکی قرار دهید: '%F'.
برای MDA procmail از "delivery mda /usr/bin/procmail -f '%F' -d $USER" استفاده کنید.
برای واگذاری مدیریت نامه به MTA خود، از "delivery mda /usr/sbin/sendmail -oi -oem -f '%F' -- $USER" استفاده کنید.
برای انتقال نامه به MTA خود از طریق SMTP، از دستور "delivery mda /usr/local/bin/msmtp --host=localhost --from='%F' -- $USER@`hostname`.`dnsdomainname`" استفاده کنید. (این رفتاری است که fetchmail به‌طور پیش‌فرض انجام می‌دهد.)
تحویل نامه‌ها به پوشهٔ maildir مشخص‌شده. پوشه باید از پیش موجود باشد و باید شامل زیرپوشه‌های maildir به نام‌های cur، new و tmp باشد؛ mpop دایرکتوری‌ها را ایجاد نخواهد کرد. این نوع تحویل تنها روی سیستم‌فایل‌هایی کار می‌کند که از پیوندهای سخت (hard links) پشتیبانی کنند.
تحویل نامه‌ها به فایل مشخص‌شده در قالب mbox. این فایل با fcntl(2) قفل خواهد شد. mpop از گونهٔ MBOXRD در قالب mbox استفاده می‌کند؛ مستندات قالب mbox را ببینید.
تحویل نامه‌ها به دایرکتوری pickup مشخص‌شده برای Exchange. این دایرکتوری باید از قبل موجود باشد.

اگر روش تحویل نیاز به تجزیهٔ سرآیندهای نامه برای یافتن نشانی envelope from داشته باشد (روش mda در صورتی که دستور شامل %F باشد، و روش mbox)، در این صورت باید یک فایل موقت برای نگهداری سرآیندهای نامه (نه بدنهٔ آن) ایجاد کند.

فایلی که UIDLها در آن ذخیره می‌شوند. این شناسه‌ها برای تشخیص پیام‌های جدید مورد نیاز هستند. %U در نام فایل با نام‌کاربری حساب جاری جایگزین خواهد شد. %H در نام فایل با نام میزبان حساب جاری جایگزین خواهد شد. اگر نام فایل شامل دایرکتوری‌هایی باشد که وجود ندارند، mpop آن‌ها را ایجاد خواهد کرد. mpop این فایل را در زمان دسترسی به حساب POP3 مربوطه، برای دسترسی انحصاری قفل می‌کند.
مقدار پیش‌فرض "~/.mpop_uidls/%U_at_%H" است. همچنین می‌توانید از یک فایل UIDLS واحد برای چندین حساب استفاده کنید، اما در این صورت نمی‌توانید بیش از یکی از این حساب‌ها را به‌طور هم‌زمان بررسی (poll) کنید.
به‌طور پیش‌فرض، mpop تنها پیام‌های جدید را پردازش می‌کند (پیام‌های جدید پیام‌هایی هستند که قبلاً در نشستی پیشین با موفقیت دریافت نشده باشند). اگر این گزینه خاموش شود، mpop تمام پیام‌ها را پردازش خواهد کرد.
تمام نامه‌ها را در کارساز POP3 نگه می‌دارد و آن‌ها را حذف نمی‌کند.
اگر به‌جای on یا off یک duration (مدت‌زمان) مشخص شود، در این صورت نامه‌ها حداقل برای آن مدت‌زمان پیش از حذف نگهداری می‌شوند؛ این زمان از نخستین باری که mpop با نامه‌ها در کارساز POP3 مواجه می‌شود محاسبه می‌گردد. یک مدت‌زمان رشته‌ای است متشکل از یک یا چند مشخصهٔ زمانی به صورت Nd برای N روز، Nh برای N ساعت، Nm برای N دقیقه یا Ns برای N ثانیه، که می‌توانند با فاصله از یکدیگر جدا شوند. برای نمونه، رشته‌های 1d12h، 36h و 1d 11h 60m همگی نشان‌دهندهٔ ۳۶ ساعت هستند.
رفتار پیش‌فرض، حذف نامه‌هایی است که با موفقیت تحویل داده شده‌اند یا توسط پالایه‌های حذف (kill filters) رد شده‌اند.
نامه‌های بزرگ‌تر از اندازهٔ داده‌شده حذف خواهند شد (مگر اینکه دستور keep خلاف آن را تعیین کند که در آن صورت تنها نادیده گرفته می‌شوند). آرگومان اندازه باید صفر یا بزرگ‌تر باشد. اگر به‌دنبال آن یک `k' یا یک `m' بیاید، اندازه به‌جای بایت بر حسب کیبی‌بایت/مبی‌بایت محاسبه می‌شود. توجه داشته باشید که برخی کارسازهای POP3 اندازه‌های اندکی نادرست برای نامه‌ها گزارش می‌کنند؛ بخش NOTES را در زیر ببینید.
هنگامی که killsize روی 0 تنظیم شده و keep نیز فعال باشد، تمام نامه‌ها به‌عنوان دریافت‌شده علامت‌گذاری می‌شوند، اما هیچ نامه‌ای از کارساز حذف نخواهد شد. این قابلیت می‌تواند برای همگام‌سازی فهرست UID در کارخواه با فهرست UID در کارساز به کار رود.
نامه‌های بزرگ‌تر از اندازهٔ داده‌شده نادیده گرفته خواهند شد (بارگیری نمی‌شوند). آرگومان اندازه باید صفر یا بزرگ‌تر باشد. اگر به‌دنبال آن یک `k' یا یک `m' بیاید، اندازه به‌جای بایت بر حسب کیبی‌بایت/مبی‌بایت محاسبه می‌شود. توجه داشته باشید که برخی کارسازهای POP3 اندازه‌های اندکی نادرست برای نامه‌ها گزارش می‌کنند؛ بخش NOTES را در زیر ببینید.
تعیین پالایه‌ای که با بررسی سرآیندهای نامه، دربارهٔ دریافت، نادیده گرفتن یا حذف هر نامه تصمیم‌گیری می‌کند. کارساز POP3 برای کارکرد این قابلیت باید از دستور POP3 TOP پشتیبانی کند؛ گزینهٔ --serverinfo را در بالا ببینید. یک آرگومان خالی پالایش را غیرفعال می‌کند.
تمام رخدادهای %F در دستور با نشانی envelope from پیام جاری (یا در صورت عدم وجود، MAILER-DAEMON) جایگزین خواهد شد. توجه داشته باشید که تضمین می‌شود این نشانی تنها شامل حروف a-z و A-Z، ارقام 0-9 و هر یک از نویسه‌های ".@_-+/" باشد، اگرچه این تنها زیرمجموعه‌ای از نویسه‌های مجاز در یک نشانی نامه از نظر تئوری است. سایر نویسه‌ها، از جمله مواردی که توسط پوسته تفسیر می‌شوند، با "_" جایگزین می‌شوند. با این حال، باید %F را در گیومه‌های تکی قرار دهید: '%F'.
تمام رخدادهای %S در دستور با اندازهٔ نامهٔ جاری همان‌طور که توسط کارساز POP3 گزارش شده جایگزین خواهد شد.
سرآیندهای نامه (به‌همراه خط خالی که سرآیندها را از بدنه جدا می‌کند) به دستور لوله‌کشی (pipe) خواهند شد. بر اساس کد بازگشتی، mpop در مورد برخورد با نامه تصمیم می‌گیرد:
0: ادامهٔ روند عادی؛ هیچ اقدام ویژه‌ای انجام نشود
1: حذف نامه (مگر اینکه keep خلاف آن را تعیین کند)؛ آن را دریافت نکن
2: نادیده گرفتن نامه؛ آن را دریافت نکن
کدهای بازگشتی بزرگ‌تر یا مساوی با 3 به این معنی هستند که خطایی رخ داده است. کدهای خطای sysexits.h ممکن است برای ارائهٔ اطلاعات در مورد نوع خطا استفاده شوند، اما این کار الزامی نیست.
فعال یا غیرفعال کردن افزودن سرآیند Received. به‌طور پیش‌فرض، mpop در حین تحویل یک سرآیند Received به ابتدای نامه اضافه می‌کند. بر اساس RFCها، اگر نامه پس از آن مجدداً مثلاً از طریق SMTP تحویل داده شود، این کار الزامی است..SH "فیلترسازی (FILTERING)" سه دستور فیلترسازی در دسترس است. آن‌ها به ترتیب زیر اجرا خواهند شد:
killsize
skipsize
filter
اگر یک دستور فیلترسازی بر نامه‌ای اعمال شود، فیلترهای باقی‌مانده اجرا نخواهند شد.

فایل پیکربندی

# نمونه‌ای از یک فایل پیکربندی کاربر ~/.mpoprc
#
# این فایل بر TLS، احراز هویت و روش تحویل نامه تمرکز دارد.
# ویژگی‌هایی که در اینجا استفاده نشده‌اند شامل فیلترسازی نامه، مهلت‌های زمانی، پراکسی‌های SOCKS،
# پارامترهای TLS و موارد دیگر است.

# تنظیم مقادیر پیش‌فرض برای تمام حساب‌های زیر.
defaults

# همیشه از TLS استفاده شود.
tls on

# تنظیم فهرستی از CAهای معتمد برای TLS. حالت پیش‌فرض استفاده از تنظیمات سیستم است، اما
# می‌توانید فایل خودتان را انتخاب کنید.
#tls_trust_file /etc/ssl/certs/ca-certificates.crt

# تحویل نامه به یک فایل نامهٔ MBOX:
delivery mbox ~/Mail/inbox
# تحویل نامه به یک پوشهٔ maildir:
#delivery maildir ~/Mail/incoming
# تحویل نامه از طریق procmail:
#delivery mda "/usr/bin/procmail -f '%F' -d $USER"
# تحویل نامه از طریق کارساز محلی SMTP:
#delivery mda "/usr/bin/msmtp --host=localhost --from='%F' -- $USER"
# تحویل نامه به یک دایرکتوری دریافت Exchange:
#delivery exchange c:\exchange\pickup

# استفاده از یک فایل UIDLS در ~/.local/share به جای ~/.mpop_uidls
uidls_file ~/.local/share/%U_at_%H

# یک سرویس رایگان ایمیل (freemail)
account freemail

# نام میزبان کارساز POP3
host pop.freemail.example

# به عنوان جایگزینی برای tls_trust_file، می‌توانید از tls_fingerprint
# برای سنجاق کردن یک گواهی منفرد استفاده کنید. هنگام تغییر گواهی کارساز
# باید اثر انگشت را به‌روزرسانی کنید، اما یک مهاجم نمی‌تواند شما را فریب داده و
# وادار به پذیرش یک گواهی جعلی کند. دریافت اثر انگشت با:
# $ mpop --serverinfo --tls --tls-certcheck=off --host=pop.freemail.example
#tls_fingerprint 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33

# احراز هویت. گذرواژه با استفاده از یکی از پنج روش زیر ارائه می‌شود:
user joe.smith

# روش گذرواژه ۱: گذرواژه را به دسته‌کلید سیستم اضافه کنید و اجازه دهید mpop آن را
# به‌طور خودکار دریافت کند. برای تنظیم گذرواژهٔ دسته‌کلید با استفاده از libsecret گنوم:
# $ secret-tool store --label=mpop \
# host pop.freemail.example \
# service pop3 \
# user joe.smith

# روش گذرواژه ۲: گذرواژه را در یک فایل رمزنگاری‌شده ذخیره کنید، و به mpop اعلام کنید
# از چه دستوری برای رمزگشایی آن استفاده کند. معمولاً مانند این مثال با GnuPG استفاده می‌شود.
# معمولاً gpg-agent یک بار گذرواژهٔ رمزگشایی را درخواست خواهد کرد.
passwordeval gpg2 --no-tty -q -d ~/.mpop-password.gpg

# روش گذرواژه ۳: گذرواژه را مستقیماً در این فایل ذخیره کنید. معمولاً ذخیره کردن
# گذرواژه‌ها در فایل‌های متنی ساده ایدهٔ خوبی نیست. اگر به هر حال این کار را می‌کنید،
# دست‌کم مطمئن شوید که این فایل تنها توسط خودتان قابل خواندن است.
#password secret123

# روش گذرواژه ۴: گذرواژه را در ~/.netrc ذخیره کنید. این روش احتمالاً دیگر
# کاربردی ندارد.

# روش گذرواژه ۵: هیچ گذرواژه‌ای مشخص نکنید. در این صورت mpop آن را از شما خواهد پرسید.
# این بدان معناست که هنگام اجرای mpop باید بتوانید در ترمینال تایپ کنید.

# یک صندوق پستی دوم در همان سرویس freemail
account freemail2 : freemail
user joey

# کارساز POP3 مربوط به ISP شما
account isp
host mail.isp.example
auth on
user 12345
# ارائه‌دهنده خدمات اینترنت شما SpamAssassin را اجرا می‌کند، بنابراین هر نامه را برای
# سرآیند "X-Spam-Status: Yes" بررسی کرده و تمام نامه‌های دارای این سرآیند را پیش از بارگیری حذف کنید.
filter if [ "`grep "^X-Spam-Status: Yes"`" ]; then exit 1; else exit 0; fi

# تنظیم یک حساب پیش‌فرض
account default : freemail

فیلترسازی با SpamAssassin

دستور filter "/path/to/spamc -c > /dev/null" تمام نامه‌هایی را که SpamAssassin هرزنامه تشخیص می‌دهد حذف خواهد کرد. از آنجا که هیچ بدنه‌ای از پیام به SpamAssassin فرستاده نمی‌شود، باید تمام آزمون‌های وابسته به بدنه را در فایل پیکربندی SpamAssassin غیرفعال کنید؛ برای نمونه قرار دهید: use_bayes 0.

اگر ارائه‌دهندهٔ ایمیل شما SpamAssassin را برایتان اجرا می‌کند، تنها کافی است نتیجه را بررسی کنید. اسکریپت زیر در صورت استفاده به عنوان فیلتر mpop می‌تواند این کار را انجام دهد:
#!/bin/sh
if [ "`grep "^X-Spam-Status: Yes"`" ]; then
exit 1 # حذف این پیام
else
exit 0 # ادامه به روال عادی
fi
از آنجا که دستور filter به یک شل ارسال می‌شود، می‌توانید این دستور را مستقیماً نیز به کار ببرید:
filter if [ "`grep "^X-Spam-Status: Yes"`" ]; then exit 1; else exit 0; fi

استفاده از mpop به همراه Tor

از تنظیمات زیر استفاده کنید:
proxy_host 127.0.0.1
proxy_port 9050
tls on
از یک نشانی IP به عنوان نام میزبان پروکسی استفاده کنید تا mpop هنگام حل نام آن، پرس‌وجوی DNS نشت ندهد.
استفاده از TLS برای جلوگیری از خوانده شدن نشست POP3 شما توسط میزبان‌های خروجی الزامی است.

~/.mpoprc یا $XDG_CONFIG_HOME/mpop/config
فایل پیکربندی پیش‌فرض.
~/.mpop_uidls
دایرکتوری پیش‌فرض برای ذخیره فایل‌های UIDL.
~/.netrc و SYSCONFDIR/netrc
فایل netrc حاوی اطلاعات ورود است. پیش از درخواست گذرواژه، msmtp آن را در ~/.netrc و SYSCONFDIR/netrc جستجو خواهد کرد.

$USER, $LOGNAME
این متغیرها نام ورود کاربر را بازنویسی می‌کنند. از $LOGNAME تنها در صورتی استفاده می‌شود که $USER مقداردهی نشده باشد. نام ورود کاربر برای سرآیندهای Received به کار می‌رود.

برنامه mpop توسط Martin Lambers <marlam@marlam.de> نوشته شده است.
سایر نویسندگان در فایل AUTHORS در توزیع کد منبع فهرست شده‌اند.

procmail(1), spamassassin(1), netrc(5) یا ftp(1), mbox(5), fcntl(2)

2026-07