.\" -*-nroff-*- .\" .\" Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, .\" 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 .\" Martin Lambers .\" Copyright (C) 2011 .\" Scott Shumate .\" .\" Permission is granted to copy, distribute and/or modify this document .\" under the terms of the GNU Free Documentation License, Version 1.2 or .\" any later version published by the Free Software Foundation; with no .\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. .TH MSMTP 1 2024-10 .SH "نام (NAME)" msmtp \- یک کلاینت SMTP .SH "خلاصه دستور (SYNOPSIS)" .IP "حالت sendmail (پیش‌فرض):" .B msmtp [option...] [\-\-] recipient... .br .B msmtp [option...] \-t [\-\-] [recipient...] .IP "حالت پیکربندی:" .B msmtp \-\-configure .IP "حالت اطلاعات سرور:" .B msmtp [option...] \-\-serverinfo .IP "حالت Remote Message Queue Starting:" .B msmtp [option...] \-\-rmqs=\fIhost\fP|\fI@domain\fP|\fI#queue\fP .SH "توضیحات (DESCRIPTION)" در حالت پیش‌فرض sendmail، برنامه msmtp یک ایمیل را از ورودی استاندارد خوانده و آن را برای تحویل به یک سرور SMTP ارسال می‌کند. .br در حالت اطلاعات سرور، msmtp اطلاعاتی درباره یک سرور SMTP چاپ می‌کند. .br در حالت Remote Message Queue Starting، برنامه msmtp یک درخواست Remote Message Queue Starting برای یک میزبان، دامنه یا صف به سرور SMTP می‌فرستد. .SH "وضعیت خروج (EXIT STATUS)" کدهای وضعیت خروج استاندارد sendmail همان‌طور که در sysexits.h تعریف شده‌اند، استفاده می‌شوند. .SH "گزینه‌ها (OPTIONS)" گزینه‌ها بر تنظیمات فایل پیکربندی اولویت دارند. .br آنها در موارد مقتضی با sendmail سازگار هستند. .IP "\fBگزینه‌های عمومی\fP" .RS .IP "\-\-version" چاپ اطلاعات نسخه، شامل اطلاعات کتابخانه‌های استفاده‌شده. .IP "\-\-help" چاپ راهنما. .IP "\-P, \-\-pretend" چاپ تنظیمات پیکربندی که استفاده خواهند شد، بدون انجام هیچ اقدام دیگری. به جای گذرواژه شما یک علامت ستاره (\(aq*\(aq) چاپ خواهد شد. .IP "\-v, \-d, \-\-debug" چاپ اطلاعات اشکال‌زدایی فراوان، شامل کل مکالمه با سرور SMTP. هنگام استفاده از این گزینه مراقب باشید: خروجی (که بالقوه خطرناک است) پاک‌سازی نخواهد شد و ممکن است گذرواژه شما در قالبی که به‌سادگی قابل رمزگشایی است چاپ شود! .RE .IP "\fBتغییر حالت اجرا\fP" .RS .IP "\-\-configure=\fImailaddress\fP" تولید یک پیکربندی برای آدرس ایمیل مشخص‌شده و چاپ آن. این خروجی می‌تواند ویرایش شده یا بدون تغییر در فایل پیکربندی کپی شود. توجه داشته باشید که این ویژگی تنها برای دامنه‌های ایمیلی کار می‌کند که رکوردهای SRV مناسب را منتشر می‌کنند؛ RFC 8314 را ببینید. .IP "\-S, \-\-serverinfo" چاپ اطلاعات درباره سرور SMTP و خروج. این اطلاعات شامل قابلیت‌های پشتیبانی‌شده (محدودیت اندازه ایمیل، احراز هویت، TLS، DSN و غیره) و اطلاعات گواهی TLS (در صورت فعال بودن TLS) است. .IP "\-\-rmqs=(\fIhost\fP|\fI@domain\fP|\fI#queue\fP)" ارسال یک درخواست Remote Message Queue Starting برای میزبان، دامنه یا صف مشخص‌شده به سرور SMTP و خروج. .RE .IP "\fBگزینه‌های پیکربندی\fP" .RS .IP "\-C, \-\-file=\fIfilename\fP" استفاده از فایل مشخص‌شده به عنوان فایل پیکربندی کاربر به‌جای ~/.msmtprc یا $XDG_CONFIG_HOME/msmtp/config. .IP "\-a, \-\-account=\fIaccount_name\fP" استفاده از حساب مشخص‌شده به‌جای حسابی با نام "default". تنظیمات این حساب را می‌توان با گزینه‌های خط فرمان تغییر داد. این گزینه را نمی‌توان همراه با گزینه \fB\-\-host\fP استفاده کرد. .IP "\-\-host=\fIhostname\fP" استفاده از این سرور SMTP با تنظیمات خط فرمان؛ هیچ داده‌ای از فایل پیکربندی استفاده نخواهد شد. این گزینه را نمی‌توان همراه با گزینه \fB\-\-account\fP استفاده کرد. .IP "\-\-port=\fInumber\fP" تنظیم شماره پورت برای اتصال. دستور \fBport\fP را ببینید. .IP "\-\-source\-ip=[\fIIP\fP]" تنظیم یا لغو تنظیم آدرس IP برای مقید کردن سوکت به آن. دستور \fBsource_ip\fP را ببینید. .IP "\-\-proxy\-host=[\fIIP\fP|\fIhostname\fP]" تنظیم یا لغو تنظیم یک پروکسی SOCKS برای استفاده. دستور \fBproxy_host\fP را ببینید. .IP "\-\-proxy\-port=[\fInumber\fP]" تنظیم یا لغو تنظیم شماره پورت برای میزبان پروکسی. دستور \fBproxy_port\fP را ببینید. .IP "\-\-socket=[\fIsocketname\fP]" تنظیم یا لغو تنظیم نام یک سوکت محلی دامنه یونیکس برای اتصال به آن. دستور \fBsocket\fP را ببینید. .IP "\-\-timeout=(\fIoff\fP|\fIseconds\fP)" تنظیم یا لغو تنظیم مهلت زمانی (timeout) شبکه، بر حسب ثانیه. دستور \fBtimeout\fP را ببینید. .IP "\-\-protocol=(\fIsmtp\fP|\fIlmtp\fP) تنظیم پروتکل. دستور \fBprotocol\fP را ببینید. .IP "\-\-domain=[\fIstring\fP]" تنظیم آرگومان دستور EHLO در SMTP (یا LHLO در LMTP)، و بخش دامنه برای سربرگ Message-ID. دستور \fBdomain\fP را ببینید. .IP "\-\-auth[=(\fIon\fP|\fIoff\fP|\fImethod\fP)]" فعال یا غیرفعال کردن احراز هویت و به صورت اختیاری انتخاب روش آن. دستور \fBauth\fP را ببینید. .IP "\-\-user=\fI[username]\fP" تنظیم یا لغو تنظیم نام کاربری برای احراز هویت. دستور \fBuser\fP را ببینید. .IP "\-\-passwordeval=[\fIcmd\fP]" ارزیابی گذرواژه برای احراز هویت. دستور \fBpasswordeval\fP را ببینید. .IP "\-\-tls[=(\fIon\fP|\fIoff\fP)]" فعال یا غیرفعال کردن TLS/SSL. دستور \fBtls\fP را ببینید. .IP "\-\-tls\-starttls[=(\fIon\fP|\fIoff\fP)]" فعال یا غیرفعال کردن STARTTLS برای TLS. دستور \fBtls_starttls\fP را ببینید. .IP "\-\-tls\-trust\-file=[\fIfile\fP]" تنظیم یا لغو تنظیم یک فایل اعتبارسنجی (trust file) برای TLS. دستور \fBtls_trust_file\fP را ببینید. .IP "\-\-tls\-crl\-file=[\fIfile\fP]" منسوخ‌شده. تنظیم یا لغو تنظیم فایل فهرست ابطال گواهی (CRL) برای TLS. دستور \fBtls_crl_file\fP را ببینید. .IP "\-\-tls\-fingerprint=[\fIfingerprint\fP]" تنظیم یا لغو تنظیم اثر انگشت (fingerprint) یک گواهی معتبر TLS. دستور \fBtls_fingerprint\fP را ببینید. .IP "\-\-tls\-key\-file=[\fIfile\fP]" تنظیم یا لغو تنظیم یک فایل کلید برای TLS. دستور \fBtls_key_file\fP را ببینید. .IP "\-\-tls\-cert\-file=[\fIfile\fP]" تنظیم یا لغو تنظیم یک فایل گواهی برای TLS. دستور \fBtls_cert_file\fP را ببینید. .IP "\-\-tls\-certcheck[=(\fIon\fP|\fIoff\fP)]" فعال یا غیرفعال کردن بررسی گواهی سرور برای TLS. دستور \fBtls_certcheck\fP را ببینید. .IP "\-\-tls\-priorities=[\fIpriorities\fP]" تنظیم یا لغو تنظیم اولویت‌های TLS. دستور \fBtls_priorities\fP را ببینید. .IP "\-\-tls\-host\-override=[\fIhost\fP]" تنظیم یا لغو تنظیم جایگزینی برای اعتبارسنجی میزبان TLS. دستور \fBtls_host_override\fP را ببینید. .IP "\-\-tls\-min\-dh\-prime\-bits=[\fIbits\fP]" منسوخ‌شده، به‌جای آن از \-\-tls\-priorities استفاده کنید. تنظیم یا لغو تنظیم حداقل اندازه بیتی عدد اول دیفی-هلمن (DH). دستور \fBtls_min_dh_prime_bits\fP را ببینید. .RE .IP "\fBگزینه‌های ویژه حالت sendmail\fP" .RS .IP "\-f, \-\-from=\fIaddress\fP" تنظیم آدرس envelope-from. .br اگر هنوز هیچ حسابی (با \fB\-\-account\fP یا \fB\-\-host\fP) انتخاب نشده باشد، این گزینه اولین حسابی را که دارای این آدرس envelope-from مشخص‌شده باشد (تعیین‌شده با دستور \fBfrom\fP)، انتخاب خواهد کرد. اگر چنین حسابی یافت نشود، از حساب "default" استفاده می‌شود. .br دستورهای \fBfrom\fP و \fBallow_from_override\fP را ببینید. .IP "\-N, \-\-dsn\-notify=(\fIoff\fP|\fIcond\fP)" تنظیم یا لغو تنظیم شرایط اعلان DSN. دستور \fBdsn_notify\fP را ببینید. .IP "\-R, \-\-dsn\-return=(\fIoff\fP|\fIret\fP)" تنظیم یا لغو تنظیم میزان اعلان DSN. دستور \fBdsn_return\fP را ببینید. توجه داشته باشید که \fIhdrs\fP جهت سازگاری با sendmail به عنوان یک نام مستعار برای \fIheaders\fP پذیرفته می‌شود. .IP "\-\-set\-from\-header[=(\fIauto\fP|\fIon\fP|\fIoff\fP)]" تنظیم نحوه مدیریت سربرگ From. دستور \fBset_from_header\fP را ببینید. .IP "\-\-set\-date\-header[=(\fIauto\fP|\fIoff\fP)]" تنظیم نحوه مدیریت سربرگ Date. دستور \fBset_date_header\fP را ببینید. .IP "\-\-set\-msgid\-header[=(\fIauto\fP|\fIoff\fP)]" تنظیم نحوه مدیریت سربرگ Message-ID. دستور \fBset_msgid_header\fP را ببینید. .IP "\-\-set\-to\-header[=(\fIon\fP|\fIoff\fP|\fIundisclosed_recipients\fP)]" تنظیم نحوه مدیریت سربرگ To. دستور \fBset_to_header\fP را ببینید. .IP "\-\-remove\-bcc\-headers[=(\fIon\fP|\fIoff\fP)]" فعال یا غیرفعال کردن حذف سربرگ‌های Bcc. دستور \fBremove_bcc_headers\fP را ببینید. .IP "\-X, \-\-logfile=[\fIfile\fP]" تنظیم یا لغو تنظیم فایل لاگ. دستور \fBlogfile\fP را ببینید. .IP "\-\-logfile\-time\-format=[\fIfmt\fP]" تنظیم یا لغو تنظیم قالب زمان در فایل لاگ. دستور \fBlogfile_time_format\fP را ببینید. .IP "\-\-syslog[=(\fIon\fP|\fIoff\fP|\fIfacility\fP)]" فعال یا غیرفعال کردن ثبت لاگ در syslog. دستور \fBsyslog\fP را ببینید. .IP "\-t, \-\-read\-recipients" خواندن آدرس‌های گیرندگان از سربرگ‌های To، Cc و Bcc ایمیل علاوه بر گیرندگانی که در خط فرمان مشخص شده‌اند. در صورت وجود هرگونه سربرگ Resent-، آدرس‌های سربرگ‌های Resent-To، Resent-Cc و Resent-Bcc موجود در اولین بلوک از سربرگ‌های Resent- به‌جای آن استفاده خواهند شد..IP "\-\-read\-envelope\-from" خواندن نشانی فرستنده پاکت (envelope-from) از سرآیند From نامه، یا از Resent-From در صورتی که چنین سرآیندی موجود باشد و پیش از هر سرآیند From ظاهر شود. توجه داشته باشید که می‌توانید از الگوی %F نیز در نشانی envelope-from استفاده کنید؛ دستور \fBfrom\fP را ببینید. .IP "\-\-aliases=[\fIfile\fP]" تنظیم یا لغو تنظیم یک فایل نام‌های مستعار (aliases). دستور \fBaliases\fP را ببینید. .IP "\-F\fIname\fP" تنظیم یک نام کامل برای استفاده در سرآیند From، در صورتی که msmtp آن را اضافه کند. دستور \fBfrom_full_name\fP را ببینید. .IP "\-\-auto\-from[=(\fIon\fP|\fIoff\fP)]" منسوخ شده. دستور \fBauto_from\fP را ببینید. .IP "\-\-maildomain=[\fIdomain\fP]" منسوخ شده. دستور \fBmaildomain\fP را ببینید. .IP "\-\-" این علامت پایان گزینه‌ها را مشخص می‌کند. تمام آرگومان‌های پس از آن به عنوان نشانی‌های گیرنده در نظر گرفته می‌شوند، حتی اگر با «\-» آغاز شوند. .RE .PP گزینه‌های زیر برای سازگاری با sendmail پذیرفته می‌شوند اما نادیده گرفته می‌شوند: .br \-A\fImode\fP, \-B\fItype\fP, \-bm, \-G, \-h\fIN\fP, \-i, \-L \fItag\fP, \-m, \-n, \-O \fIoption=value\fP, \-o\fIx\fP \fIvalue\fP .SH "نحوه استفاده (USAGE)" پیشنهادی برای یک فایل پیکربندی مناسب می‌تواند با استفاده از گزینه \-\-configure تولید شود. به طور معمول، یک فایل پیکربندی سراسری سیستم و/یا یک فایل پیکربندی کاربر حاوی اطلاعاتی درباره این است که از کدام کارگزار SMTP و چگونه استفاده شود، اما تمام تنظیمات را می‌توان در خط فرمان نیز پیکربندی کرد. .br اطلاعات مربوط به کارگزارهای SMTP در حساب‌ها (accounts) سازمان‌دهی می‌شوند. هر حساب یک کارگزار SMTP را توصیف می‌کند: نام میزبان، تنظیمات احراز هویت، تنظیمات TLS و غیره. هر فایل پیکربندی می‌تواند چندین حساب را تعریف کند. .PP کاربر می‌تواند به یکی از سه روش زیر حساب مورد استفاده را انتخاب کند: .IP "\-\-account=\fIid\fP" استفاده از حساب مشخص‌شده. تنظیمات خط فرمان بر تنظیمات فایل پیکربندی اولویت دارند. .IP "\-\-host=\fIhostname\fP" تنها استفاده از تنظیمات خط فرمان؛ از هیچ‌یک از داده‌های فایل پیکربندی استفاده نکنید. .IP "\-\-from=\fIaddress\fP یا \-\-read\-envelope\-from" انتخاب نخستین حساب از فایل پیکربندی سیستم یا کاربر که نشانی envelope-from منطبقی بر اساس دستور \fBfrom\fP دارد. این قابلیت تنها زمانی کار می‌کند که نه از \fB\-\-account\fP و نه از \fB\-\-host\fP استفاده شده باشد. .br زیرنشانی‌ها (Subaddresses) پشتیبانی می‌شوند. برای مثال، نشانی envelope-from به شکل \fIuser+detail@example.com\fP با حساب مربوط به \fIuser@example.com\fP منطبق خواهد شد. .br علاوه بر این، نشانی envelope-from حساب می‌تواند یک الگوی عامه‌نما (wildcard) باشد. دستور \fBfrom\fP را ببینید. .PP اگر هیچ‌یک از گزینه‌های بالا استفاده نشود (یا اگر هیچ حسابی دستور \fBfrom\fP منطبقی نداشته باشد)، آنگاه از حساب «default» استفاده خواهد شد. .PP برنامه msmtp نامه‌ها را بدون تغییر به کارگزار SMTP منتقل می‌کند، به استثنای موارد زیر: .br - سرآیند(های) Bcc حذف خواهند شد. این رفتار را می‌توان با دستور \fBremove_bcc_headers\fP و گزینه \fB\-\-remove\-bcc\-headers\fP تغییر داد. .br - اگر نامه سرآیند From نداشته باشد، یکی اضافه خواهد شد. این رفتار را می‌توان با دستور \fBset_from_header\fP و گزینه \fB\-\-set\-from\-header\fP تغییر داد. این سرآیند از نشانی envelope-from و به صورت اختیاری از یک نام کامل تنظیم‌شده با گزینه \fB\-F\fP یا دستور \fBfrom_full_name\fP استفاده خواهد کرد. .br - اگر نامه سرآیند Date نداشته باشد، یکی اضافه خواهد شد. این رفتار را می‌توان با دستور \fBset_date_header\fP و گزینه \fB\-\-set\-date\-header\fP تغییر داد. .br - اگر نامه سرآیند Message-ID نداشته باشد، یکی اضافه خواهد شد. این رفتار را می‌توان با دستور \fBset_msgid_header\fP و گزینه \fB\-\-set\-msgid\-header\fP تغییر داد. .br - هنگامی که \fBset_to_header\fP تنظیم شده باشد، سرآیندهای اصلی To، Cc و Bcc با یک سرآیند جدید To جایگزین می‌شوند. .PP برای شروع سریع، به بخش «مثال‌ها (EXAMPLES)» بروید. .SH "فایل‌های پیکربندی (CONFIGURATION FILES)" در صورت وجود و خواندنی بودن، یک فایل پیکربندی سراسری سیستم در SYSCONFDIR/msmtprc بارگذاری خواهد شد، که در آن SYSCONFDIR به پلتفرم شما بستگی دارد. از \fB\-\-version\fP برای یافتن دایرکتوری مورد استفاده بهره بگیرید. .br در صورت وجود و خواندنی بودن، یک فایل پیکربندی کاربر بارگذاری خواهد شد (به طور پیش‌فرض ابتدا ‎~/.msmtprc و به دنبال آن ‎$XDG_CONFIG_HOME/msmtp/config بررسی می‌شود، اما \fB\-\-version\fP را ببینید). حساب‌های تعریف‌شده در فایل پیکربندی کاربر بر حساب‌های فایل پیکربندی سیستم اولویت دارند. .br داده‌های پیکربندی هر یک از این فایل‌ها را می‌توان با گزینه‌های خط فرمان تغییر داد. .PP یک فایل پیکربندی یک فایل متنی ساده است. خطوط خالی و خطوط توضیح (که نخستین نویسه غیرفاصله‌ای آن‌ها «#» است) نادیده گرفته می‌شوند. .br هر خط دیگر باید شامل یک دستور باشد و ممکن است حاوی یک آرگومان برای آن دستور نیز باشد. .br آرگومان می‌تواند در نشانه‌های نقل‌قول دوگانه (") قرار گیرد، به عنوان مثال اگر نخستین یا آخرین نویسه آن یک فاصله باشد. .br اگر نام فایلی با مدک (~) شروع شود، این مدک با $HOME جایگزین خواهد شد. اگر دستوری آرگومان \fIon\fP را بپذیرد، یک آرگومان خالی را نیز می‌پذیرد و با آن همانند \fIon\fP رفتار می‌کند. .br دستورها در حساب‌ها سازمان‌دهی می‌شوند. هر حساب با دستور \fBaccount\fP شروع می‌شود و تنظیمات را برای یک حساب SMTP تعریف می‌کند. .PP برای شروع سریع، به بخش «مثال‌ها (EXAMPLES)» بروید. .PP دستورها به شرح زیر هستند: .IP "defaults" تنظیم مقادیر پیش‌فرض. دستورات پیکربندی بعدی مقادیر پیش‌فرض را برای تمام تعاریف حساب‌های پس از خود در فایل پیکربندی جاری تعیین خواهند کرد. .IP "account \fIname\fP [:\fIaccount\fP[,...]]" آغاز تعریف یک حساب جدید با نام داده‌شده. مقادیر پیش‌فرض جاری در آن جای‌گذاری می‌شوند. .br اگر بعد از نام حساب یک دونقطه و فهرستی از حساب‌های از پیش تعریف‌شده آورده شود، حساب جدید با مقادیر پیش‌فرض جای‌گذاری‌شده، تمامی تنظیمات را از حساب‌های موجود در فهرست به ارث خواهد برد. .IP "eval \fIcmd\fP" جایگزین کردن خط جاری فایل پیکربندی با نخستین خط خروجی (stdout) دستور \fIcmd\fP. این قابلیت می‌تواند برای رمزگشایی تنظیمات یا تولید آن‌ها از طریق اسکریپت‌ها استفاده شود. برای مثال، \fIeval echo host localhost\fP خط جاری را با \fIhost localhost\fP جایگزین می‌کند. .br توجه داشته باشید که هر خط \fBeval\fP هنگام خواندن فایل پیکربندی ارزیابی خواهد شد. .br دستور \fIcmd\fP نباید ورودی استاندارد را مختل کند؛ در صورت شک، عبارت \fI< /dev/null\fP را به آن ضمیمه کنید. .br توجه داشته باشید که برای گذرواژه‌ها می‌توانید به جای \fIeval password cmd\fP از دستور \fBpasswordeval\fP استفاده کنید. این روش این مزیت را دارد که دستور تنها در صورت نیاز ارزیابی می‌شود. .IP "host \fIhostname\fP" کارگزار SMTP که نامه باید به آن ارسال شود. آرگومان می‌تواند نام میزبان یا یک نشانی شبکه باشد. هر تعریف حساب باید شامل این دستور باشد. .IP "port \fInumber\fP" درگاهی که کارگزار SMTP روی آن گوش می‌دهد. پیش‌فرض 25 ("smtp") است، مگر اینکه از TLS بدون STARTTLS استفاده شود که در این صورت 465 ("smtps") خواهد بود. .IP "source_ip [\fIIP\fP]" تنظیم یک نشانی IP مبدأ برای مقید کردن (bind) اتصال خروجی به آن. تنها در موارد خاص روی سیستم‌های چنداتصاله (multi-home) مفید است. یک آرگومان خالی این ویژگی را غیرفعال می‌کند. .IP "proxy_host [\fIIP|hostname\fP]" استفاده از یک پراکسی SOCKS. تمام ترافیک شبکه از طریق این میزبان پراکسی عبور خواهد کرد، از جمله پرس‌وجوهای DNS، به جز پرس‌وجوی DNS که ممکن است برای یافتن نشانی نام خود میزبان پراکسی لازم باشد (با استفاده از نشانی IP به عنوان نام میزبان پراکسی می‌توان از این امر اجتناب کرد). یک آرگومان خالی برای \fIhostname\fP استفاده از پراکسی را غیرفعال می‌کند. نسخه پشتیبانی‌شده پروتکل SOCKS برابر با 5 است. اگر می‌خواهید از این قابلیت همراه با Tor استفاده کنید، بخش «استفاده از msmtp با Tor» را در ادامه ببینید. .IP "proxy_port [\fInumber\fP]" تنظیم شماره درگاه برای میزبان پراکسی. یک آرگومان خالی برای \fInumber\fP این مقدار را به درگاه پیش‌فرض بازمی‌گرداند. .IP "socket \fIsocketname\fP" تنظیم نام فایل یک سوکت دامنه یونیکس (unix domain socket) برای اتصال به آن. این گزینه بر هر دو مورد \fBhost\fP/\fBport\fP و \fBproxy_host\fP/\fBproxy_port\fP تقدم دارد. .IP "timeout (\fIoff\fP|\fIseconds\fP)" تنظیم یا لغو تنظیم زمان انتظار شبکه (network timeout)، به ثانیه. آرگومان \fIoff\fP به معنای عدم تعیین زمان انتظار است که به مفهوم استفاده از پیش‌فرض سیستم‌عامل خواهد بود. .IP "protocol (\fIsmtp\fP|\fIlmtp\fP)" تنظیم پروتکل مورد استفاده. در حال حاضر فقط SMTP و LMTP پشتیبانی می‌شوند. پیش‌فرض SMTP است. برای درگاه‌های پیش‌فرض، دستور \fBport\fP در بالا را ببینید. .IP "domain \fIargument\fP" از این دستور برای تعیین آرگومان دستور SMTP EHLO (یا LMTP LHLO)، و بخش دامنه در سرآیندهای Message-ID در صورتی که msmtp آن‌ها را تولید کند، استفاده می‌شود (دستور \fBset_msgid_header\fP را ببینید). .br مقدار پیش‌فرض \fIlocalhost\fP نامناسب است اما معمولاً برای EHLO کار می‌کند. با این حال این مقدار برای سرآیندهای Message-ID منطقی نیست. برای جزئیات دستور \fBset_msgid_header\fP را ببینید. .br گزینه‌های محتمل شامل بخش دامنه نشانی ایمیل شما (provider.example برای joe@provider.example) یا نام دامنه کاملاً واجد شرایط (FQDN) میزبان شما (در صورت موجود بودن) است. .br الگوهای جایگزینی زیر پشتیبانی می‌شوند: .br الگوی %H با مقدار $HOSTNAME یا در صورت ناموفق بودن با نام میزبان سیستم جایگزین خواهد شد. .br الگوی %C با نام کانونیکال (canonical name) مربوط به %H جایگزین خواهد شد. .br الگوی %M با محتوای /etc/mailname جایگزین خواهد شد (بسته به پیکربندی ساخت ممکن است دایرکتوری متفاوتی استفاده شود؛ خروجی msmtp \-\-version را ببینید و به دنبال مکان فایل پیکربندی سیستم بگردید)..IP "auth [(\fIon\fP|\fIoff\fP|\fImethod\fP)]" فعال یا غیرفعال کردن احراز هویت و در صورت تمایل انتخاب یک روش برای استفاده. آرگومان \fIon\fP یک روش را به‌طور خودکار انتخاب می‌کند. .br معمولاً یک نام کاربری و یک گذرواژه برای احراز هویت استفاده می‌شوند. نام کاربری در فایل پیکربندی با دستور \fBuser\fP مشخص می‌شود. پنج روش مختلف برای تعیین گذرواژه وجود دارد: .br ۱. افزودن گذرواژه به دسته‌کلید سیستم. دسته‌کلیدهایی که در حال حاضر پشتیبانی می‌شوند عبارتند از دسته‌کلید Gnome و Mac OS X Keychain. برای دسته‌کلید Gnome، از دستور secret\-tool (بخشی از libsecret گنوم) برای ذخیره گذرواژه‌ها استفاده کنید: secret\-tool store \-\-label=msmtp host mail.freemail.example service smtp user joe.smith. در Mac OS X، از این دستور استفاده کنید: security add\-internet\-password \-s mail.freemail.example \-r smtp \-a joe.smith \-w. در هر دو مثال، mail.freemail.example را با نام کارگزار SMTP، و joe.smith را با نام کاربری خود جایگزین کنید. .br ۲. ذخیره گذرواژه در یک فایل رمزگذاری‌شده و استفاده از \fBpasswordeval\fP برای تعیین دستوری جهت رمزگشایی آن فایل، مثلاً با استفاده از GnuPG. بخش EXAMPLES را ببینید. .br ۳. ذخیره گذرواژه در فایل پیکربندی با استفاده از دستور \fBpassword\fP. (معمولاً ذخیره گذرواژه‌ها در فایل‌های متن خام ایده مناسبی در نظر گرفته نمی‌شود. اگر به هر حال این کار را انجام می‌دهید، باید مطمئن شوید که این فایل تنها توسط خودتان قابل خواندن است.) .br ۴. ذخیره گذرواژه در ‎~/.netrc‎. این روش احتمالاً منسوخ شده است. .br ۵. تایپ کردن گذرواژه در ترمینال در زمان نیاز. .br توصیه می‌شود از روش ۱ یا ۲ استفاده کنید. .br روش‌های احراز هویت متعددی وجود دارد. اکثر کارگزارها فقط از برخی از آن‌ها پشتیبانی می‌کنند. .br روش‌های نام کاربری / گذرواژه زیر پشتیبانی می‌شوند: \fIplain\fP (یک روش ساده با متن خام، با کدگذاری base64 که تقریباً توسط همه کارگزارها پشتیبانی می‌شود)، \fIscram\-sha\-1\fP و \fIscram\-sha\-1\-plus\fP (روشی که از گذرواژه‌های متن خام اجتناب کرده و کارگزار را ملزم می‌سازد تا ثابت کند که گذرواژه (درهم‌سازی‌شده و نمک‌خورده) را در اختیار دارد، که از برخی حملات مرد میانی جلوگیری می‌کند. گونهٔ \fI-plus\fP علاوه بر این، از اطلاعات اتصال کانال TLS برای تضمین‌های امنیتی حتی بهتر استفاده می‌کند)، \fIscram\-sha\-256\fP و \fIscram\-sha\-256\-plus\fP (مشابه قبلی اما با تابع درهم‌سازی قوی‌تر)، \fIcram\-md5\fP (یک روش منسوخ‌شده که از گذرواژه‌های متن خام دوری می‌کند، اما دیگر امن تلقی نمی‌شود)، \fIdigest\-md5\fP (یک روش منسوخ‌شده و بیش از حد پیچیده که از گذرواژه‌های متن خام اجتناب می‌کرد، اما دیگر امن در نظر گرفته نمی‌شود)، \fIlogin\fP (یک روش غیراستاندارد با متن خام، شبیه به روش plain اما بدتر از آن)، \fIntlm\fP (یک روش غیراستاندارد و نامفهوم که اکنون شکسته شده در نظر گرفته می‌شود؛ این روش گاهی به یک پارامتر دامنه ویژه نیاز دارد که از طریق \fBntlmdomain\fP ارسال می‌شود). .br اگر هیچ روشی مشخص نشده باشد، msmtp بر اساس مزایای امنیتی یکی را به‌طور خودکار انتخاب خواهد کرد. در صورت استفاده از TLS، ترتیب اولویت بدین صورت است: \fIscram\-sha\-256\-plus\fP، \fIscram\-sha\-1\-plus\fP، \fIscram\-sha\-256\fP، \fIscram\-sha\-1\fP، \fIplain\fP، و به دنبال آن در صورت نبود گزینه‌های دیگر، برخی از روش‌های منسوخ‌شده. بدون TLS، فقط \fIscram\-sha\-256\fP و \fIscram\-sha\-1\fP در نظر گرفته می‌شوند. .br در حال حاضر سه روش احراز هویت وجود دارند که بر پایه اطلاعات نام کاربری / گذرواژه نیستند و باید به صورت دستی انتخاب شوند: \fIoauthbearer\fP یا نسخه پیشین آن \fIxoauth2\fP (یک نشانه OAuth2 از ارائه‌دهنده ایمیل به عنوان گذرواژه استفاده می‌شود. برای جزئیات درباره چگونگی دریافت این نشانه، مستندات ارائه‌دهنده ایمیل خود را بررسی کنید. از دستور \fBpasswordeval\fP می‌توان برای انتقال نشانه‌هایی که مرتباً تغییر می‌کنند از یک اسکریپت یا یک متغیر محیطی به msmtp استفاده کرد)، \fIexternal\fP (احراز هویت خارج از پروتکل اتفاق می‌افتد، معمولاً با ارسال یک گواهی کلاینت TLS، و این روش صرفاً تأیید می‌کند که این احراز هویت موفقیت‌آمیز بوده است)، و \fIgssapi\fP (چارچوب Kerberos مدیریت احراز هویت امن را بر عهده می‌گیرد و تنها یک نام کاربری لازم است). .br اینکه آیا یک روش خاص پشتیبانی می‌شود یا خیر، به کتابخانه احراز هویت زیربنایی و نسخه آن بستگی دارد. از \fB\-\-version\fP برای یافتن اینکه کدام روش‌ها پشتیبانی می‌شوند استفاده کنید. .IP "user \fIlogin\fP" تنظیم نام کاربری برای احراز هویت. یک آرگومان خالی نام کاربری را لغو می‌کند. .IP "password \fIsecret\fP" تنظیم گذرواژه برای احراز هویت. یک آرگومان خالی گذرواژه را لغو می‌کند. برای جلوگیری از ذخیره گذرواژه‌های متن خام در فایل پیکربندی، استفاده از دستور \fBpasswordeval\fP یا یک دسته‌کلید را به جای این دستور در نظر داشته باشید. .IP "passwordeval [\fIcmd\fP]" تنظیم گذرواژه احراز هویت بر روی خروجی (stdout) دستور \fIcmd\fP. از این سازوکار می‌توان برای مثال جهت رمزگشایی بلادرنگ فایل‌های گذرواژه یا پرس‌وجو از دسته‌کلیدها، و بدین ترتیب اجتناب از ذخیره گذرواژه‌های متن خام استفاده کرد. .br دستور \fIcmd\fP نباید در ورودی استاندارد تداخلی ایجاد کند؛ در صورت شک داشتن، \fI< /dev/null\fP را به آن الحاق کنید. .IP "ntlmdomain [\fIdomain\fP]" تنظیم یک دامنه برای روش احراز هویت \fBntlm\fP. این گزینه منسوخ شده است. .IP "tls [(\fIon\fP|\fIoff\fP)]" فعال یا غیرفعال کردن TLS (که با نام SSL نیز شناخته می‌شود) برای اتصالات امن. .br امنیت لایه انتقال (TLS) «... محرمانگی ارتباطات را روی اینترنت فراهم می‌کند. این پروتکل به برنامه‌های کارخواه/کارگزار اجازه می‌دهد به شیوه‌ای ارتباط برقرار کنند که برای جلوگیری از شنود، دستکاری، یا جعل پیام طراحی شده است» (نقل قول از RFC2246). .br یک کارگزار می‌تواند از TLS در یکی از دو حالت استفاده کند: از طریق یک دستور STARTTLS (نشست با راه‌اندازی اولیه پروتکل عادی آغاز می‌شود، و سپس TLS با استفاده از دستور STARTTLS پروتکل آغاز می‌گردد)، یا فوراً (TLS پیش از راه‌اندازی عادی پروتکل مقداردهی اولیه می‌شود؛ این حالت نیازمند یک درگاه مجزا است). حالت اول پیش‌فرض است، اما می‌توانید با غیرفعال کردن \fBtls_starttls\fP به حالت دوم تغییر وضعیت دهید. .br هنگامی که TLS آغاز می‌شود، کارگزار گواهی‌ای را برای احراز هویت خود ارسال می‌کند. برای اعتبارسنجی هویت کارگزار، از برنامه کارخواه انتظار می‌رود بررسی کند که گواهی از نظر شکلی صحیح است و توسط یک مرجع صدور گواهی (CA) که کاربر به آن اعتماد دارد صادر شده باشد. (همچنین زنجیره‌های گواهی با CAهای میانی نیز می‌توانند وجود داشته باشند.) .br فهرست CAهای مورد اعتماد با استفاده از دستور \fBtls_trust_file\fP مشخص می‌شود. مقدار پیش‌فرض "system" است و پیش‌فرض سراسری سیستم را انتخاب می‌کند، اما شما می‌توانید CAهای مورد اعتماد را خودتان نیز انتخاب کنید. .br یک مشکل اساسی در این موضوع این است که شما باید به CAها اعتماد کنید. مانند هر سازمان دیگری، یک CA می‌تواند ناکارآمد، مخرب یا توسط افراد ناباب دستکاری‌شده باشد، یا توسط سازمان‌های دولتی مجبور شود کاربران نهایی را بدون اطلاع آنان به خطر بیندازد. تمام این اتفاقات در سراسر جهان رخ داده‌اند و همچنان رخ می‌دهند. این ایده که سازمان‌های مرکزی وجود داشته باشند که برای امن بودن ارتباطاتتان ملزم به اعتماد به آن‌ها باشید، از بنیاد معیوب است. .br به جای اعتماد به یک CA، می‌توانید انتخاب کنید که فقط به یک گواهی تکی برای کارگزاری که می‌خواهید به آن متصل شوید اعتماد کنید. برای این منظور، اثر انگشت گواهی را با \fBtls_fingerprint\fP مشخص نمایید. این کار تضمین می‌کند که هیچ مرد میانی‌ای نمی‌تواند با ارائه یک گواهی جعلی صادرشده توسط CAای که بر حسب اتفاق در فهرست اعتماد شما قرار دارد، هویت کارگزار را جعل کند. با این حال، باید هر زمان که گواهی کارگزار تغییر می‌کند اثر انگشت را به‌روزرسانی کنید، و باید هر بار مطمئن شوید که این تغییر موجه است، به عنوان مثال زمانی که گواهی قدیمی منقضی شده باشد. این کار زحمت دارد، اما بهایی است که باید پرداخته شود. .br اطلاعات مربوط به گواهی یک کارگزار را می‌توان با \fI\-\-serverinfo \-\-tls \-\-tls\-certcheck=off\fP به دست آورد. این اطلاعات شامل CA صادرکننده گواهی (تا بتوانید از طریق \fBtls_trust_file\fP به آن CA اعتماد کنید)، و اثر انگشت گواهی (تا بتوانید از طریق \fBtls_fingerprint\fP به آن گواهی خاص اعتماد کنید) می‌باشد. .br همچنین TLS به کارگزار اجازه می‌دهد هویت کارخواه را بررسی کند. برای این منظور، کارخواه باید گواهی صادرشده توسط یک CA مورد اعتماد کارگزار را ارائه دهد. برای ارائه آن گواهی، کارخواه به فایل کلید متناظر نیز نیاز دارد. می‌توانید فایل‌های گواهی و کلید را با استفاده از \fBtls_cert_file\fP و \fBtls_key_file\fP تنظیم کنید. این سازوکار می‌تواند برای احراز هویت کاربران نیز استفاده شود، تا احراز هویت سنتی با نام کاربری / گذرواژه دیگر ضروری نباشد. سازوکار \fIexternal\fP در \fBauth\fP را ببینید. .br همچنین می‌توانید با تعیین URIهای دستگاه GnuTLS در \fBtls_cert_file\fP و \fBtls_key_file\fP، از گواهی‌های کارخواه ذخیره‌شده روی یک دستگاه احراز هویت خارجی استفاده کنید. می‌توانید URIهای صحیح را با استفاده از \fBp11tool \-\-list-privkeys \-\-login\fP بیابید (ابزار p11tool همراه با GnuTLS ارائه می‌شود). اگر دستگاه شما برای دسترسی به داده‌ها نیازمند یک PIN است، می‌توانید آن را با استفاده از یکی از سازوکارهای گذرواژه (مانند \fBpasswordeval\fP، \fBpassword\fP) تعیین کنید. .IP "tls_starttls [(\fIon\fP|\fIoff\fP)]" انتخاب حالت گونهٔ TLS: شروع TLS از درون نشست (\fIon\fP، پیش‌فرض)، یا تونل کردن نشست از طریق TLS (\fIoff\fP). .IP "tls_trust_file \fIfile\fP" فعال کردن اعتبارسنجی گواهی کارگزار با استفاده از فهرستی از مراجع صدور گواهی (CA) مورد اعتماد. مقدار پیش‌فرض، مقدار ویژه "system" است که پیش‌فرض سیستم را انتخاب می‌کند. یک آرگومان خالی اعتماد به CAها را غیرفعال می‌کند. اگر فایلی را انتخاب کنید، باید در قالب PEM باشد، و همچنین باید از \fBtls_crl_file\fP استفاده کنید. .IP "tls_crl_file [\fIfile\fP]" این گزینه یک فایل فهرست ابطال گواهی (CRL) را برای TLS تنظیم می‌کند تا گواهی‌های باطل‌شده بررسی شوند (یک آرگومان خالی، که پیش‌فرض است، این ویژگی را غیرفعال می‌کند). .br پروتکل OCSP جایگزینی برای فایل‌های CRL است. هنگامی که از GnuTLS استفاده می‌شود، اطلاعات OCSP منگنه‌شده (stapled) به طور خودکار بررسی خواهند شد و افزونه MustStaple در TLS پشتیبانی می‌شود، با این حال در صورت مفقود بودن اطلاعات OCSP منگنه‌شده، هیچ پرس‌وجوی دستی OCSP ارسال نخواهد شد. در سایر کتابخانه‌های TLS، ممکن است رفتار متفاوت باشد. .IP "tls_fingerprint [\fIfingerprint\fP]" تنظیم اثر انگشت یک گواهی تکی برای پذیرش در TLS. به این گواهی صرف‌نظر از محتویاتش اعتماد خواهد شد (این دستور بر \fBtls_trust_file\fP اولویت دارد و آن را باطل می‌کند). اثر انگشت باید از نوع SHA256 باشد، اما برای سازگاری عقبروی می‌تواند از نوع SHA1 یا MD5 نیز باشد (لطفاً از این کار خودداری کنید). قالب باید به شکل 01:23:45:67:.... باشد. برای دریافت اثر انگشت گواهی کارگزار از \fI\-\-serverinfo \-\-tls \-\-tls\-certcheck=off \-\-tls\-fingerprint=\fP استفاده کنید. .IP "tls_key_file \fIfile\fP" ارسال یک گواهی کارخواه به کارگزار (از این گزینه همراه با \fBtls_cert_file}\fP استفاده کنید). این فایل باید شامل کلید خصوصی یک گواهی در قالب PEM باشد. یک آرگومان خالی این ویژگی را غیرفعال می‌کند..IP "tls_cert_file \fIfile\fP" ارسال یک گواهی کارخواه به کارساز (همراه با \fBtls_key_file\fP استفاده شود). فایل باید شامل یک گواهی در قالب PEM باشد. یک آرگومان خالی این ویژگی را غیرفعال می‌کند. .IP "tls_certcheck [(\fIon\fP|\fIoff\fP)]" فعال یا غیرفعال کردن بررسی‌های گواهی کارساز. این بررسی‌ها به‌طور پیش‌فرض فعال هستند. غیرفعال کردن آن‌ها \fBtls_trust_file\fP و \fBtls_fingerprint\fP را لغو می‌کند. هشدار: زمانی که این بررسی‌ها غیرفعال باشند، نشست‌های TLS امن نخواهند بود! .IP "tls_priorities [\fIpriorities\fP]" تنظیم اولویت‌ها برای پارامترهای نشست TLS. مقدار پیش‌فرض توسط کتابخانهٔ TLS تعیین می‌شود و می‌توان آن را با استفاده از یک آرگومان خالی برای این دستور انتخاب کرد. تفسیر رشتهٔ \fIpriorities\fP به کتابخانهٔ TLS بستگی دارد. از \fI\-\-version\fP برای اطلاع از این‌که از کدام کتابخانهٔ TLS استفاده می‌کنید بهره بگیرید. .br برای GnuTLS، بخش Priority Strings را در راهنما ببینید. .br برای libtls، رشتهٔ \fIpriorites\fP فهرستی از رشته‌های پارامتر است که با فاصله از هم جدا شده‌اند و پیشوند آن‌ها یکی از PROTOCOLS=، CIPHERS= یا ECDHECURVES= است. این رشته‌های پارامتر به توابع \fItls_config_parse_protocols\fP، \fItls_config_set_ciphers\fP و \fItls_config_set_ecdhecurves\fP پاس داده می‌شوند. بخش‌های ناشناخته از رشتهٔ \fIpriorities\fP نادیده گرفته خواهند شد. مثال: "PROTOCOLS=TLSv1.3 CIPHERS=ECDHE-RSA-AES128-SHA256 ECDHECURVES=P-384". .IP "tls_host_override [\fIhost\fP]" به‌طور پیش‌فرض، اعتبارسنجی میزبان TLS از نام میزبانی که توسط دستور \fBhost\fP مشخص شده استفاده می‌کند. این دستور اجازه می‌دهد از نام میزبان متفاوتی برای اعتبارسنجی استفاده شود. این گزینه فقط در موارد خاص کاربرد دارد. .IP "tls_min_dh_prime_bits [\fIbits\fP]" منسوخ شده است، به‌جای آن از \fBtls_priorities\fP استفاده کنید. تنظیم یا لغو تنظیم حداقل تعداد بیت‌های اول Diffie-Hellman (DH) پذیرفته‌شده برای نشست‌های TLS. مقدار پیش‌فرض توسط کتابخانهٔ TLS تعیین می‌شود و می‌توان با استفاده از یک آرگومان خالی برای این دستور آن را برگزید. مقدار پیش‌فرض را تنها در صورتی کاهش دهید (برای مثال به 512 بیت) که هیچ راه دیگری برای برقراری TLS با کارساز دوردست وجود نداشته باشد. .IP "from \fIenvelope_from\fP" تنظیم نشانی envelope-from. الگوهای جایگزینی زیر پشتیبانی می‌شوند: .br %F با نشانی استخراج‌شده از سرآیند From نامه، یا در صورت وجود سرآیند Resent-From پیش از هر سرآیند From، با آن جایگزین خواهد شد. .br %U با $USER، یا در صورت عدم موفقیت با $LOGNAME، و در صورت عدم موفقیت با نام کاربری فردی که msmtp را اجرا می‌کند جایگزین خواهد شد. .br %H با $HOSTNAME، یا در صورت عدم موفقیت با نام میزبان سامانه جایگزین خواهد شد. .br %C با نام متعارف (canonical name) متعلق به %H جایگزین خواهد شد. .br %M با محتویات /etc/mailname جایگزین خواهد شد (بسته به پیکربندی ساخت ممکن است دایرکتوری متفاوتی استفاده شود؛ خروجی msmtp \-\-version را ببینید و به دنبال مکان فایل پیکربندی سامانه بگردید). .br توجه داشته باشید که دستور منسوخ \fBauto_from\fP این نشانی envelope-from را بازنویسی می‌کند. .br برای اجبار به استفاده از این نشانی envelope-from و نادیده گرفتن گزینهٔ \-f / \-\-from، دستور \fBallow_from_override\fP را ببینید. .br علاوه بر این، نشانی envelope-from می‌تواند یک الگوی عامه‌نما (wildcard) مانند آنچه در تطبیق نام فایل در پوسته استفاده می‌شود باشد. این حالت زمانی است که شامل یکی از نویسه‌های ?، * یا [ باشد. این کار اجازه می‌دهد نشانی‌های گوناگون envelope-from ارائه‌شده با گزینهٔ \fI\-\-from\fP با یک حساب کاربری منطبق شوند. .IP "from_full_name \fIname\fP" تنظیم یک نام کامل برای استفاده در سرآیند From در صورتی که msmtp سرآیندی اضافه کند. دستور \fBset_from_header\fP را ببینید. .IP "allow_from_override (\fIon\fP|\fIoff\fP) به‌طور پیش‌فرض، گزینهٔ \fI\-\-from\fP دستور \fBfrom\fP را لغو می‌کند. برای غیرفعال کردن این رفتار، آن را روی \fIoff\fP تنظیم کنید. .IP "dsn_notify (\fIoff\fP|\fIcondition\fP)" این دستور شرایطی را تنظیم می‌کند که در آن سامانهٔ ایمیل باید پیام‌های DSN (اعلان وضعیت تحویل - Delivery Status Notification) را ارسال کند. آرگومان \fIoff\fP درخواست‌های صریح DSN را غیرفعال می‌کند، که بدین معنی است که سامانهٔ ایمیل خود تصمیم می‌گیرد چه زمانی پیام‌های DSN را ارسال کند. این حالت پیش‌فرض است. مقدار \fIcondition\fP باید \fInever\fP باشد تا هرگز درخواستی برای اعلان ارسال نشود، یا فهرستی جداشده با کاما (بدون فاصله!) از یک یا چند مورد زیر باشد: \fIfailure\fP برای درخواست اعلان هنگام شکست در ارسال، \fIdelay\fP برای مطلع شدن از تاخیرهای پیام، و \fIsuccess\fP برای مطلع شدن از ارسال موفقیت‌آمیز. کارساز SMTP باید از افزونهٔ DSN پشتیبانی کند. .IP "dsn_return (\fIoff\fP|\fIamount\fP)" این دستور تعیین می‌کند چه مقدار از یک نامه در پیام‌های DSN (اعلان وضعیت تحویل) بازگردانده شود. آرگومان \fIoff\fP درخواست‌های صریح DSN را غیرفعال می‌کند، که به این معنی است که سامانهٔ ایمیل تعیین می‌کند چه مقدار از نامه در پیام‌های DSN بازگردانده شود. این حالت پیش‌فرض است. مقدار \fIamount\fP باید \fIheaders\fP باشد تا تنها سرآیندهای پیام بازگردانده شوند، یا \fIfull\fP تا کل نامه بازگردانده شود. کارساز SMTP باید از افزونهٔ DSN پشتیبانی کند. .IP "set_from_header [(\fIauto\fP|\fIon\fP|\fIoff\fP)]" زمان تنظیم سرآیند From: مقدار \fIauto\fP در صورتی که نامه سرآیند From نداشته باشد آن را اضافه می‌کند (این حالت پیش‌فرض است)، مقدار \fIon\fP همیشه سرآیند From را تنظیم کرده و سرآیندهای موجود را بازنویسی می‌کند، و مقدار \fIoff\fP هرگز سرآیند From را تنظیم نمی‌کند. .br اگر کارساز ایمیل نامه را به دلیل عدم تطابق سرآیند From با نشانی envelope-from رد کند (یک اقدام رایج ضد هرزنامه)، ممکن است بخواهید این گزینه را روی \fIon\fP تنظیم کنید. .br سرآیند From بر اساس نشانی envelope-from ایجاد می‌شود. برای جلوگیری از تنظیم نشانی envelope-from توسط برنامه‌ها، \fBallow_from_override\fP را غیرفعال کنید. .br برای سازگاری با نسخه‌های قدیمی‌تر، \fBadd_missing_from_header\fP [(\fIon\fP|\fIoff\fP)] همچنان پشتیبانی می‌شود و با تنظیمات \fIauto\fP و \fIoff\fP مطابقت دارد. .IP "set_date_header [(\fIauto\fP|\fIoff\fP)]" زمان تنظیم سرآیند Date: مقدار \fIauto\fP در صورتی که نامه فاقد سرآیند Date باشد آن را اضافه می‌کند (این حالت پیش‌فرض است)، و مقدار \fIoff\fP هرگز سرآیند Date را تنظیم نمی‌کند. .br برای سازگاری با نسخه‌های قدیمی‌تر، \fBadd_missing_date_header\fP [(\fIon\fP|\fIoff\fP)] همچنان پشتیبانی می‌شود و با تنظیمات \fIauto\fP و \fIoff\fP مطابقت دارد. .IP "set_msgid_header [(\fIauto\fP|\fIoff\fP)]" زمان تنظیم سرآیند Message-ID: مقدار \fIauto\fP در صورتی که نامه سرآیند Message-ID نداشته باشد آن را اضافه می‌کند (این حالت پیش‌فرض است)، و مقدار \fIoff\fP هرگز سرآیند Message-ID را تنظیم نمی‌کند. .br شناسه‌های Message-ID به شکل \fIhash@domain\fP هستند، که در آن \fIhash\fP یک درهم‌سازی روی برخی مقادیر است که نامه را به‌طور یکتا مشخص می‌کنند، و \fIdomain\fP یا مقدار دستور \fBdomain\fP است (مگر اینکه مقدار پیش‌فرض آن \fIlocalhost\fP باشد)، یا بخش دامنه از نشانی envelope-from (در صورت موجود بودن)، یا نام میزبان کارساز SMTP است. .IP "set_to_header [(\fIon\fP|\fIoff\fP|\fIundisclosed_recipients\fP)]" هنگامی که روی \fIon\fP یا \fIundisclosed_recipients\fP تنظیم شود، سرآیندهای اصلی To، Cc و Bcc حذف شده و یک سرآیند To جدید اضافه می‌شود. هنگامی که روی \fIon\fP تنظیم شود، این سرآیند جدید شامل همهٔ گیرندگان خواهد بود، صرف‌نظر از اینکه در ابتدا چگونه مشخص شده بودند. هنگامی که روی \fIundisclosed_recipients\fP تنظیم شود، سرآیند To برابر با "To: undisclosed-recipients:;" خواهد بود. تنظیم پیش‌فرض off است. .br برای سازگاری با نسخه‌های قدیمی‌تر، \fBundisclosed_recipients\fP [(\fIon\fP|\fIoff\fP)] همچنان پشتیبانی می‌شود و با تنظیمات \fIundisclosed_recipients\fP و \fIoff\fP مطابقت دارد. .IP "remove_bcc_headers [(\fIon\fP|\fIoff\fP)]" این دستور کنترل می‌کند که آیا سرآیندهای Bcc حذف شوند یا خیر. حالت پیش‌فرض حذف آن‌هاست. .IP "logfile [\fIfile\fP]" یک آرگومان خالی ثبت وقایع را غیرفعال می‌کند (این حالت پیش‌فرض است). .br هنگامی که ثبت وقایع با انتخاب یک فایل گزارش فعال شود، msmtp برای هر نامه‌ای که از طریق حسابی که این فایل گزارش برای آن انتخاب شده ارسال می‌کند، یک خط به فایل گزارش می‌افزاید. .br این خط شامل اطلاعات زیر خواهد بود: تاریخ و زمان در قالبی که با \fBlogfile_time_format\fP مشخص شده، نام میزبان کارساز SMTP، وضعیت استفاده از TLS، وضعیت استفاده از احراز هویت، نام کاربری احراز هویت (تنها در صورت استفاده از احراز هویت)، نشانی envelope-from، نشانی‌های گیرندگان، اندازهٔ نامه به صورتی که به کارساز منتقل شده است (تنها در صورت تحویل موفقیت‌آمیز)، کد وضعیت SMTP و پیام خطای SMTP (تنها در صورت بروز خطا و در صورت وجود)، پیام خطا (تنها در صورت بروز خطا و در صورت وجود)، کد خروج (از sysexits.h؛ مقدار EX_OK نشان‌دهندهٔ موفقیت است). .br اگر نام فایل یک خط تیره (\-) باشد، msmtp خط گزارش را در خروجی استاندارد چاپ می‌کند. .IP "logfile_time_format [\fIfmt\fP]" تنظیم یا لغو تنظیم قالب زمان فایل گزارش. این مقدار به‌عنوان رشتهٔ قالب برای تابع strftime() استفاده خواهد شد. یک آرگومان خالی مقدار پیش‌فرض را برمی‌گزیند ("%b %d %H:%M:%S"). مقدار ویژهٔ \fInone\fP از نمایش خروجی زمان جلوگیری می‌کند. .IP "syslog [(\fIon\fP|\fIoff\fP|\fIfacility\fP)]" فعال یا غیرفعال کردن گزارش‌گیری از طریق syslog. بخش (facility) می‌تواند یکی از مقادیر LOG_USER، LOG_MAIL، LOG_LOCAL0، ...، LOG_LOCAL7 باشد. مقدار پیش‌فرض LOG_USER است. .br هر بار که msmtp تلاش می‌کند نامه‌ای را از طریق حسابی که حاوی این دستور syslog است ارسال کند، یک ورودی را با facility انتخابی در سرویس syslog ثبت خواهد کرد. .br این خط شامل اطلاعات زیر خواهد بود: نام میزبان کارساز SMTP، وضعیت استفاده از TLS، وضعیت استفاده از احراز هویت، نشانی envelope-from، نشانی‌های گیرندگان، اندازهٔ نامه به صورتی که به کارساز منتقل شده است (تنها در صورت تحویل موفقیت‌آمیز)، کد وضعیت SMTP و پیام خطای SMTP (تنها در صورت بروز خطا و در صورت وجود)، پیام خطا (تنها در صورت بروز خطا و در صورت وجود)، کد خروج (از sysexits.h؛ مقدار EX_OK نشان‌دهندهٔ موفقیت است). .br .IP "aliases [\fIfile\fP]" جایگزینی گیرندگان محلی با نشانی‌های موجود در فایل نام‌های مستعار (aliases). فایل aliases یک فایل متنی ساده حاوی نگاشت‌های میان یک نشانی محلی و فهرستی از نشانی‌های جایگزین است. نگاشت‌ها به شکل زیر هستند: .br local: someone@example.com, person@domain.example .br نشانی‌های جایگزین چندگانه با کاما جدا می‌شوند. توضیح‌ها با `#' آغاز می‌شوند و تا انتهای خط ادامه می‌یابند. .br نشانی محلی \fIdefault\fP اهمیت ویژه‌ای دارد و در صورتی که نشانی محلی در فایل aliases یافت نشود با آن مطابقت داده می‌شود. اگر هیچ نام مستعار \fIdefault\fP پیدا نشود، نشانی محلی دست‌نخورده باقی می‌ماند. .br توجه داشته باشید که گسترش نام مستعار تنها روی پاکت نامه تأثیر می‌گذارد. سرآیندهای To و Cc تغییر داده نمی‌شوند. .br یک آرگومان خالی برای دستور aliases جایگزینی نشانی‌های محلی را غیرفعال می‌کند. این حالت پیش‌فرض است..IP "auto_from [(\fIon\fP|\fIoff\fP)]" منسوخ شده است؛ با استفاده از الگوهای جایگزینی دستور \fIfrom\fP می‌توانید به همین نتیجه و حتی فراتر از آن دست یابید. .br فعال یا غیرفعال کردن خودکار نشانی‌های envelope-from. مقدار پیش‌فرض off است. هنگام فعال بودن، یک نشانی envelope-from به شکل user@domain ایجاد خواهد شد. بخش محلی (local part) روی \fBUSER\fP یا اگر ناموفق باشد روی \fBLOGNAME\fP یا در صورت ناموفق بودن آن، روی نام کاربری ورود کاربر فعلی تنظیم خواهد شد. بخش دامنه می‌تواند با دستور \fBmaildomain\fP تنظیم شود. اگر maildomain خالی باشد، نشانی envelope-from تنها شامل نام کاربری بوده و بخش دامنه نخواهد داشت. هنگامی که auto_from غیرفعال است، نشانی envelope-from باید به‌طور صریح تنظیم شود. .IP "maildomain [\fIdomain\fP]" منسوخ شده است؛ با استفاده از الگوهای جایگزینی دستور \fIfrom\fP می‌توانید به همین نتیجه و فراتر از آن دست یابید. .br تنظیم یک بخش دامنه برای ایجاد نشانی envelope-from. این گزینه تنها زمانی استفاده می‌شود که \fIauto_from\fP فعال (on) باشد. دامنه می‌تواند خالی باشد. .br .SH "مثال‌ها (EXAMPLES)" .br .B فایل پیکربندی .PP .br # نمونه‌ای برای فایل پیکربندی کاربر ~/.msmtprc .br # .br # این فایل بر TLS و احراز هویت تمرکز دارد. ویژگی‌هایی که در اینجا استفاده نشده‌اند شامل # ثبت گزارش‌ها (logging)، مهلت‌های زمانی (timeouts)، پروکسی‌های SOCKS، پارامترهای TLS، تنظیمات # اعلان وضعیت تحویل (DSN) و موارد دیگر است. .br .br # تنظیم مقادیر پیش‌فرض برای همه حساب‌های بعدی. .br defaults .br .br # استفاده از درگاه ارسال ایمیل 587 به جای درگاه SMTP 25. .br port 587 .br .br # همیشه از TLS استفاده شود. .br tls on .br .br # تعیین فهرستی از CAهای معتبر برای TLS. پیش‌فرض استفاده از تنظیمات سیستم است، اما # می‌توانید فایل دلخواه خود را انتخاب کنید. .br #tls_trust_file /etc/ssl/certs/ca\-certificates.crt .br .br # یک سرویس ایمیل رایگان .br account freemail .br .br # نام میزبان کارگزار SMTP .br host smtp.freemail.example .br .br # به عنوان جایگزینی برای tls_trust_file، می‌توانید از tls_fingerprint # برای سنجاق کردن یک گواهی تکی استفاده کنید. در صورت تغییر گواهی سرور # باید اثرانگشت را به‌روزرسانی کنید، اما دیگر یک نفوذگر نمی‌تواند شما را فریب # دهد تا یک گواهی جعلی را بپذیرید. دریافت اثرانگشت با: # $ msmtp \-\-serverinfo \-\-tls \-\-tls\-certcheck=off \-\-host=smtp.freemail.example .br #tls_fingerprint 00\::11\::22\::33\::44\::55\::66\::77\::88\::99\::AA\::BB\::CC\::DD\::EE\::FF\::00\::11\::22\::33 .br .br # نشانی Envelope-from .br from joe_smith@freemail.example .br .br # احراز هویت. گذرواژه با استفاده از یکی از پنج روش مشخص می‌شود، به زیر مراجعه کنید. .br auth on .br user joe.smith .br .br # روش ۱ گذرواژه: افزودن گذرواژه به دسته‌کلید (keyring) سیستم تا msmtp آن را # به‌طور خودکار دریافت کند. برای تنظیم گذرواژه دسته‌کلید با استفاده از libsecret گنوم: # $ secret\-tool store \-\-label=msmtp \\ # host smtp.freemail.example \\ # service smtp \\ # user joe.smith .br .br # روش ۲ گذرواژه: ذخیره گذرواژه در یک فایل رمزنگاری‌شده و مشخص کردن دستوری برای msmtp # جهت رمزگشایی آن. این روش معمولاً همراه با GnuPG استفاده می‌شود، مانند این مثال. # معمولاً gpg\-agent یک‌بار گذرواژه رمزگشایی را درخواست می‌کند. .br passwordeval gpg2 \-\-no\-tty \-q \-d ~/.msmtp\-password.gpg .br .br # روش ۳ گذرواژه: ذخیره مستقیم گذرواژه در همین فایل. معمولاً ذخیره کردن گذرواژه‌ها # در فایل‌های متنی ساده ایده خوبی نیست. اگر با این وجود این کار را انجام می‌دهید، # حداقل مطمئن شوید این فایل تنها توسط خودتان قابل خواندن است. .br #password secret123 .br .br # روش ۴ گذرواژه: ذخیره گذرواژه در ~/.netrc. این روش احتمالاً دیگر چندان کاربردی # ندارد. .br .br # روش ۵ گذرواژه: گذرواژه‌ای تعیین نکنید. در این صورت msmtp آن را از شما درخواست # می‌کند. این بدان معناست که هنگام اجرای msmtp باید بتوانید در ترمینال تایپ کنید. .br .br # یک نشانی ایمیل دوم در همان سرویس ایمیل رایگان .br account freemail2 : freemail .br from joey@freemail.example .br .br # کارگزار SMTP ارائه‌دهنده خدمات اینترنت (ISP) شما .br account isp .br host mail.isp.example .br from smithjoe@isp.example .br auth on .br user 12345 .br .br # تنظیم یک حساب پیش‌فرض .br account default : freemail .br .PP .B استفاده از msmtp با Mutt .PP یک فایل پیکربندی برای msmtp بسازید و خطوط زیر را به فایل پیکربندی Mutt خود اضافه کنید: .br .B set sendmail="/path/to/msmtp" .br .B set use_from=yes .br .B set realname="Your Name" .br .B set from=you@example.com .br .B set envelope_from=yes .br گزینه envelope_from=yes به Mutt اجازه می‌دهد از گزینه .BR \-f برنامه msmtp استفاده کند. بنابراین msmtp نخستین حسابی را که با نشانی مبدأ you@example.com مطابقت دارد انتخاب می‌کند. .br همچنین، می‌توانید از گزینه .BR \-a استفاده کنید: .br .B set sendmail="/path/to/msmtp \-a my\-account" .br یا همه چیز را از طریق خط فرمان تنظیم کنید (اما توجه داشته باشید که از این طریق نمی‌توانید گذرواژه تعیین کنید): .br .B set sendmail="/path/to/msmtp \-\-host=mailhub \-f me@example.com \-\-tls .B \-\-tls\-trust\-file=trust.crt".PP اگر در فایل پیکربندی msmtp خود چندین حساب ایمیل دارید و اجازه می‌دهید Mutt با استفاده از گزینه .BR \-f حساب مناسب را انتخاب کند، می‌توانید با خطوط پیکربندی زیر در Mutt به راحتی بین حساب‌ها جابه‌جا شوید: .br .B macro generic\ "1"\ ":set from=you@example.com" .br .B macro generic\ "2"\ ":set from=you@your\-employer.example" .br .B macro generic\ "3"\ ":set from=you@some\-other\-provider.example" .PP .B استفاده از msmtp با mail .PP یک حساب پیش‌فرض تعریف کنید و خط زیر را در ~/.mailrc خود قرار دهید: .br .B set sendmail="/path/to/msmtp" .PP .B استفاده از msmtp با Tor .PP از تنظیمات زیر استفاده کنید: .br .B proxy_host 127.0.0.1 .br .B proxy_port 9050 .br .B tls on .br از یک آدرس IP به عنوان نام میزبان پروکسی استفاده کنید تا msmtp هنگام تحلیل آن، پرس‌وجوی DNS را نشت ندهد. .br استفاده از TLS برای جلوگیری از خوانده شدن نشست SMTP شما توسط میزبان‌های خروجی (exit hosts) الزامی است. .br مقدار \fBdomain\fP را روی مقداری که مایل به افشای آن نیستید تنظیم نکنید (در صورت امکان اصلاً آن را مقداردهی نکنید). .PP .B فایل نام‌های مستعار (Aliases) .PP # نمونه فایل نام‌های مستعار (aliases file) # Joe و Jane به root ارسال ایمیل‌های .br root: joe_smith@example.com, jane_chang@example.com # Mark به cron ارسال ایمیل‌های .br cron: mark_jones@example.com # admin ارسال تمام موارد دیگر به .br default: admin@domain.example .SH "فایل‌ها (FILES)" .IP "SYSCONFDIR/msmtprc" فایل پیکربندی سراسری سیستم. از گزینه .B \-\-version برای یافتن مسیر SYSCONFDIR در سیستم خود استفاده کنید. .IP "~/.msmtprc یا $XDG_CONFIG_HOME/msmtp/config" فایل پیکربندی کاربر. .IP "~/.netrc و SYSCONFDIR/netrc" فایل netrc شامل اطلاعات ورود به سیستم است. msmtp پیش از درخواست گذرواژه، آن را در ~/.netrc و SYSCONFDIR/netrc جستجو خواهد کرد. .SH "محیط (ENVIRONMENT)" .IP "USER, LOGNAME" این متغیرها هنگام ساخت نشانی envelope-from، نام کاربری ورود به سیستم را بازنویسی می‌کنند. LOGNAME تنها زمانی استفاده می‌شود که USER تنظیم نشده باشد. .IP "EMAIL, SMTPSERVER" این متغیرهای محیطی تنها زمانی استفاده می‌شوند که نه \fB\-\-host\fP و نه \fB\-\-account\fP به کار نرفته باشند و هیچ حساب پیش‌فرضی در فایل‌های پیکربندی تعریف نشده باشد. در این حالت، نام میزبان از SMTPSERVER و نشانی envelope-from از EMAIL گرفته می‌شود، مگر اینکه توسط \fB\-\-from\fP یا \fB\-\-read\-envelope\-from\fP بازنویسی شوند. در حال حاضر SMTPSERVER باید تنها شامل یک نام میزبان ساده (بدون URL) باشد و EMAIL باید تنها شامل یک نشانی ساده (بدون نام یا اطلاعات اضافی) باشد. .SH "نویسندگان (AUTHORS)" برنامه msmtp توسط Martin Lambers نوشته شده است. .br سایر نویسندگان در فایل AUTHORS در توزیع کد منبع فهرست شده‌اند..SH "همچنین ببینید (SEE ALSO)" .BR sendmail (8), .BR netrc (5) یا .BR ftp (1)