| MSMTP(1) | General Commands Manual | MSMTP(1) |
نام (NAME)
msmtp - یک کلاینت SMTP
خلاصه دستور (SYNOPSIS)
- حالت sendmail (پیشفرض):
- msmtp [option...] [--] recipient...
msmtp [option...] -t [--] [recipient...] - حالت پیکربندی:
- msmtp --configure <mailaddress>
- حالت اطلاعات سرور:
- msmtp [option...] --serverinfo
- حالت Remote Message Queue Starting:
- msmtp [option...] --rmqs=host|@domain|#queue
توضیحات (DESCRIPTION)
در حالت
پیشفرض sendmail،
برنامه msmtp یک
ایمیل را از
ورودی
استاندارد
خوانده و آن
را برای
تحویل به یک
سرور SMTP
ارسال
میکند.
در حالت
اطلاعات
سرور، msmtp
اطلاعاتی
درباره یک
سرور SMTP چاپ
میکند.
در حالت Remote Message Queue
Starting، برنامه msmtp
یک درخواست
Remote Message Queue Starting برای
یک میزبان،
دامنه یا صف
به سرور SMTP
میفرستد.
وضعیت خروج (EXIT STATUS)
کدهای وضعیت خروج استاندارد sendmail همانطور که در sysexits.h تعریف شدهاند، استفاده میشوند.
گزینهها (OPTIONS)
گزینهها
بر تنظیمات
فایل
پیکربندی
اولویت
دارند.
آنها در
موارد
مقتضی با sendmail
سازگار
هستند.
- گزینههای عمومی
- --version
- چاپ اطلاعات نسخه، شامل اطلاعات کتابخانههای استفادهشده.
- --help
- چاپ راهنما.
- -P, --pretend
- چاپ تنظیمات پیکربندی که استفاده خواهند شد، بدون انجام هیچ اقدام دیگری. به جای گذرواژه شما یک علامت ستاره ('*') چاپ خواهد شد.
- -v, -d, --debug
- چاپ اطلاعات اشکالزدایی فراوان، شامل کل مکالمه با سرور SMTP. هنگام استفاده از این گزینه مراقب باشید: خروجی (که بالقوه خطرناک است) پاکسازی نخواهد شد و ممکن است گذرواژه شما در قالبی که بهسادگی قابل رمزگشایی است چاپ شود!
- تغییر حالت اجرا
- --configure=mailaddress
- تولید یک پیکربندی برای آدرس ایمیل مشخصشده و چاپ آن. این خروجی میتواند ویرایش شده یا بدون تغییر در فایل پیکربندی کپی شود. توجه داشته باشید که این ویژگی تنها برای دامنههای ایمیلی کار میکند که رکوردهای SRV مناسب را منتشر میکنند؛ RFC 8314 را ببینید.
- -S, --serverinfo
- چاپ اطلاعات درباره سرور SMTP و خروج. این اطلاعات شامل قابلیتهای پشتیبانیشده (محدودیت اندازه ایمیل، احراز هویت، TLS، DSN و غیره) و اطلاعات گواهی TLS (در صورت فعال بودن TLS) است.
- --rmqs=(host|@domain|#queue)
- ارسال یک درخواست Remote Message Queue Starting برای میزبان، دامنه یا صف مشخصشده به سرور SMTP و خروج.
- گزینههای پیکربندی
- -C, --file=filename
- استفاده از فایل مشخصشده به عنوان فایل پیکربندی کاربر بهجای ~/.msmtprc یا $XDG_CONFIG_HOME/msmtp/config.
- -a, --account=account_name
- استفاده از حساب مشخصشده بهجای حسابی با نام "default". تنظیمات این حساب را میتوان با گزینههای خط فرمان تغییر داد. این گزینه را نمیتوان همراه با گزینه --host استفاده کرد.
- --host=hostname
- استفاده از این سرور SMTP با تنظیمات خط فرمان؛ هیچ دادهای از فایل پیکربندی استفاده نخواهد شد. این گزینه را نمیتوان همراه با گزینه --account استفاده کرد.
- --port=number
- تنظیم شماره پورت برای اتصال. دستور port را ببینید.
- --source-ip=[IP]
- تنظیم یا لغو تنظیم آدرس IP برای مقید کردن سوکت به آن. دستور source_ip را ببینید.
- --proxy-host=[IP|hostname]
- تنظیم یا لغو تنظیم یک پروکسی SOCKS برای استفاده. دستور proxy_host را ببینید.
- --proxy-port=[number]
- تنظیم یا لغو تنظیم شماره پورت برای میزبان پروکسی. دستور proxy_port را ببینید.
- --socket=[socketname]
- تنظیم یا لغو تنظیم نام یک سوکت محلی دامنه یونیکس برای اتصال به آن. دستور socket را ببینید.
- --timeout=(off|seconds)
- تنظیم یا لغو تنظیم مهلت زمانی (timeout) شبکه، بر حسب ثانیه. دستور timeout را ببینید.
- --protocol=(smtp|lmtp)
- تنظیم پروتکل. دستور protocol را ببینید.
- --domain=[string]
- تنظیم آرگومان دستور EHLO در SMTP (یا LHLO در LMTP)، و بخش دامنه برای سربرگ Message-ID. دستور domain را ببینید.
- --auth[=(on|off|method)]
- فعال یا غیرفعال کردن احراز هویت و به صورت اختیاری انتخاب روش آن. دستور auth را ببینید.
- --user=[username]
- تنظیم یا لغو تنظیم نام کاربری برای احراز هویت. دستور user را ببینید.
- --passwordeval=[cmd]
- ارزیابی گذرواژه برای احراز هویت. دستور passwordeval را ببینید.
- --tls[=(on|off)]
- فعال یا غیرفعال کردن TLS/SSL. دستور tls را ببینید.
- --tls-starttls[=(on|off)]
- فعال یا غیرفعال کردن STARTTLS برای TLS. دستور tls_starttls را ببینید.
- --tls-trust-file=[file]
- تنظیم یا لغو تنظیم یک فایل اعتبارسنجی (trust file) برای TLS. دستور tls_trust_file را ببینید.
- --tls-crl-file=[file]
- منسوخشده. تنظیم یا لغو تنظیم فایل فهرست ابطال گواهی (CRL) برای TLS. دستور tls_crl_file را ببینید.
- --tls-fingerprint=[fingerprint]
- تنظیم یا لغو تنظیم اثر انگشت (fingerprint) یک گواهی معتبر TLS. دستور tls_fingerprint را ببینید.
- --tls-key-file=[file]
- تنظیم یا لغو تنظیم یک فایل کلید برای TLS. دستور tls_key_file را ببینید.
- --tls-cert-file=[file]
- تنظیم یا لغو تنظیم یک فایل گواهی برای TLS. دستور tls_cert_file را ببینید.
- --tls-certcheck[=(on|off)]
- فعال یا غیرفعال کردن بررسی گواهی سرور برای TLS. دستور tls_certcheck را ببینید.
- --tls-priorities=[priorities]
- تنظیم یا لغو تنظیم اولویتهای TLS. دستور tls_priorities را ببینید.
- --tls-host-override=[host]
- تنظیم یا لغو تنظیم جایگزینی برای اعتبارسنجی میزبان TLS. دستور tls_host_override را ببینید.
- --tls-min-dh-prime-bits=[bits]
- منسوخشده، بهجای آن از --tls-priorities استفاده کنید. تنظیم یا لغو تنظیم حداقل اندازه بیتی عدد اول دیفی-هلمن (DH). دستور tls_min_dh_prime_bits را ببینید.
- گزینههای ویژه حالت sendmail
- -f, --from=address
- تنظیم آدرس
envelope-from.
اگر هنوز هیچ حسابی (با --account یا --host) انتخاب نشده باشد، این گزینه اولین حسابی را که دارای این آدرس envelope-from مشخصشده باشد (تعیینشده با دستور from)، انتخاب خواهد کرد. اگر چنین حسابی یافت نشود، از حساب "default" استفاده میشود.
دستورهای from و allow_from_override را ببینید. - -N, --dsn-notify=(off|cond)
- تنظیم یا لغو تنظیم شرایط اعلان DSN. دستور dsn_notify را ببینید.
- -R, --dsn-return=(off|ret)
- تنظیم یا لغو تنظیم میزان اعلان DSN. دستور dsn_return را ببینید. توجه داشته باشید که hdrs جهت سازگاری با sendmail به عنوان یک نام مستعار برای headers پذیرفته میشود.
- --set-from-header[=(auto|on|off)]
- تنظیم نحوه مدیریت سربرگ From. دستور set_from_header را ببینید.
- --set-date-header[=(auto|off)]
- تنظیم نحوه مدیریت سربرگ Date. دستور set_date_header را ببینید.
- --set-msgid-header[=(auto|off)]
- تنظیم نحوه مدیریت سربرگ Message-ID. دستور set_msgid_header را ببینید.
- --set-to-header[=(on|off|undisclosed_recipients)]
- تنظیم نحوه مدیریت سربرگ To. دستور set_to_header را ببینید.
- --remove-bcc-headers[=(on|off)]
- فعال یا غیرفعال کردن حذف سربرگهای Bcc. دستور remove_bcc_headers را ببینید.
- -X, --logfile=[file]
- تنظیم یا لغو تنظیم فایل لاگ. دستور logfile را ببینید.
- --logfile-time-format=[fmt]
- تنظیم یا لغو تنظیم قالب زمان در فایل لاگ. دستور logfile_time_format را ببینید.
- --syslog[=(on|off|facility)]
- فعال یا غیرفعال کردن ثبت لاگ در syslog. دستور syslog را ببینید.
- -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 استفاده کنید؛ دستور from را ببینید.
- --aliases=[file]
- تنظیم یا لغو تنظیم یک فایل نامهای مستعار (aliases). دستور aliases را ببینید.
- -Fname
- تنظیم یک نام کامل برای استفاده در سرآیند From، در صورتی که msmtp آن را اضافه کند. دستور from_full_name را ببینید.
- --auto-from[=(on|off)]
- منسوخ شده. دستور auto_from را ببینید.
- --maildomain=[domain]
- منسوخ شده. دستور maildomain را ببینید.
- --
- این علامت پایان گزینهها را مشخص میکند. تمام آرگومانهای پس از آن به عنوان نشانیهای گیرنده در نظر گرفته میشوند، حتی اگر با «-» آغاز شوند.
گزینههای
زیر برای
سازگاری با
sendmail پذیرفته
میشوند
اما نادیده
گرفته
میشوند:
-Amode, -Btype, -bm, -G, -hN, -i, -L tag, -m, -n,
-O option=value, -ox value
نحوه استفاده (USAGE)
پیشنهادی
برای یک
فایل
پیکربندی
مناسب
میتواند
با استفاده
از گزینه --configure
تولید شود.
به طور
معمول، یک
فایل
پیکربندی
سراسری
سیستم و/یا
یک فایل
پیکربندی
کاربر حاوی
اطلاعاتی
درباره این
است که از
کدام
کارگزار SMTP و
چگونه
استفاده
شود، اما
تمام
تنظیمات را
میتوان در
خط فرمان
نیز
پیکربندی
کرد.
اطلاعات
مربوط به
کارگزارهای
SMTP در
حسابها (accounts)
سازماندهی
میشوند. هر
حساب یک
کارگزار SMTP
را توصیف
میکند: نام
میزبان،
تنظیمات
احراز
هویت،
تنظیمات TLS و
غیره. هر
فایل
پیکربندی
میتواند
چندین حساب
را تعریف
کند.
کاربر میتواند به یکی از سه روش زیر حساب مورد استفاده را انتخاب کند:
- --account=id
- استفاده از حساب مشخصشده. تنظیمات خط فرمان بر تنظیمات فایل پیکربندی اولویت دارند.
- --host=hostname
- تنها استفاده از تنظیمات خط فرمان؛ از هیچیک از دادههای فایل پیکربندی استفاده نکنید.
- --from=address یا --read-envelope-from
- انتخاب
نخستین
حساب از
فایل
پیکربندی
سیستم یا
کاربر که
نشانی envelope-from
منطبقی بر
اساس دستور
from دارد. این
قابلیت
تنها زمانی
کار میکند
که نه از --account
و نه از --host
استفاده
شده باشد.
زیرنشانیها (Subaddresses) پشتیبانی میشوند. برای مثال، نشانی envelope-from به شکل user+detail@example.com با حساب مربوط به user@example.com منطبق خواهد شد.
علاوه بر این، نشانی envelope-from حساب میتواند یک الگوی عامهنما (wildcard) باشد. دستور from را ببینید.
اگر هیچیک از گزینههای بالا استفاده نشود (یا اگر هیچ حسابی دستور from منطبقی نداشته باشد)، آنگاه از حساب «default» استفاده خواهد شد.
برنامه msmtp
نامهها را
بدون تغییر
به کارگزار
SMTP منتقل
میکند، به
استثنای
موارد زیر:
- سرآیند(های)
Bcc حذف
خواهند شد.
این رفتار
را میتوان
با دستور
remove_bcc_headers و گزینه
--remove-bcc-headers تغییر
داد.
- اگر نامه
سرآیند From
نداشته
باشد، یکی
اضافه
خواهد شد.
این رفتار
را میتوان
با دستور
set_from_header و گزینه
--set-from-header تغییر
داد. این
سرآیند از
نشانی envelope-from و
به صورت
اختیاری از
یک نام کامل
تنظیمشده
با گزینه -F
یا دستور
from_full_name
استفاده
خواهد کرد.
- اگر نامه
سرآیند Date
نداشته
باشد، یکی
اضافه
خواهد شد.
این رفتار
را میتوان
با دستور
set_date_header و گزینه
--set-date-header تغییر
داد.
- اگر نامه
سرآیند Message-ID
نداشته
باشد، یکی
اضافه
خواهد شد.
این رفتار
را میتوان
با دستور
set_msgid_header و گزینه
--set-msgid-header تغییر
داد.
- هنگامی که
set_to_header تنظیم
شده باشد،
سرآیندهای
اصلی To، Cc و Bcc با
یک سرآیند
جدید To
جایگزین
میشوند.
برای شروع سریع، به بخش «مثالها (EXAMPLES)» بروید.
فایلهای پیکربندی (CONFIGURATION FILES)
در صورت
وجود و
خواندنی
بودن، یک
فایل
پیکربندی
سراسری
سیستم در SYSCONFDIR/msmtprc
بارگذاری
خواهد شد،
که در آن SYSCONFDIR
به پلتفرم
شما بستگی
دارد. از --version
برای یافتن
دایرکتوری
مورد
استفاده
بهره
بگیرید.
در صورت
وجود و
خواندنی
بودن، یک
فایل
پیکربندی
کاربر
بارگذاری
خواهد شد (به
طور
پیشفرض
ابتدا ~/.msmtprc و
به دنبال آن
$XDG_CONFIG_HOME/msmtp/config
بررسی
میشود،
اما --version را
ببینید).
حسابهای
تعریفشده
در فایل
پیکربندی
کاربر بر
حسابهای
فایل
پیکربندی
سیستم
اولویت
دارند.
دادههای
پیکربندی
هر یک از این
فایلها را
میتوان با
گزینههای
خط فرمان
تغییر داد.
یک فایل
پیکربندی
یک فایل
متنی ساده
است. خطوط
خالی و خطوط
توضیح (که
نخستین
نویسه
غیرفاصلهای
آنها «#»
است) نادیده
گرفته
میشوند.
هر خط دیگر
باید شامل
یک دستور
باشد و ممکن
است حاوی یک
آرگومان
برای آن
دستور نیز
باشد.
آرگومان
میتواند
در
نشانههای
نقلقول
دوگانه (")
قرار گیرد،
به عنوان
مثال اگر
نخستین یا
آخرین
نویسه آن یک
فاصله باشد.
اگر نام
فایلی با
مدک (~) شروع
شود، این
مدک با $HOME
جایگزین
خواهد شد.
اگر دستوری
آرگومان on
را بپذیرد،
یک آرگومان
خالی را نیز
میپذیرد و
با آن
همانند on
رفتار
میکند.
دستورها در
حسابها
سازماندهی
میشوند. هر
حساب با
دستور account
شروع
میشود و
تنظیمات را
برای یک
حساب SMTP
تعریف
میکند.
برای شروع سریع، به بخش «مثالها (EXAMPLES)» بروید.
دستورها به شرح زیر هستند:
- defaults
- تنظیم مقادیر پیشفرض. دستورات پیکربندی بعدی مقادیر پیشفرض را برای تمام تعاریف حسابهای پس از خود در فایل پیکربندی جاری تعیین خواهند کرد.
- account name [:account[,...]]
- آغاز تعریف
یک حساب
جدید با نام
دادهشده.
مقادیر
پیشفرض
جاری در آن
جایگذاری
میشوند.
اگر بعد از نام حساب یک دونقطه و فهرستی از حسابهای از پیش تعریفشده آورده شود، حساب جدید با مقادیر پیشفرض جایگذاریشده، تمامی تنظیمات را از حسابهای موجود در فهرست به ارث خواهد برد. - eval cmd
- جایگزین
کردن خط
جاری فایل
پیکربندی
با نخستین
خط خروجی (stdout)
دستور cmd.
این قابلیت
میتواند
برای
رمزگشایی
تنظیمات یا
تولید
آنها از
طریق
اسکریپتها
استفاده
شود. برای
مثال، eval echo host localhost
خط جاری را
با host localhost
جایگزین
میکند.
توجه داشته باشید که هر خط eval هنگام خواندن فایل پیکربندی ارزیابی خواهد شد.
دستور cmd نباید ورودی استاندارد را مختل کند؛ در صورت شک، عبارت < /dev/null را به آن ضمیمه کنید.
توجه داشته باشید که برای گذرواژهها میتوانید به جای eval password cmd از دستور passwordeval استفاده کنید. این روش این مزیت را دارد که دستور تنها در صورت نیاز ارزیابی میشود. - host hostname
- کارگزار SMTP که نامه باید به آن ارسال شود. آرگومان میتواند نام میزبان یا یک نشانی شبکه باشد. هر تعریف حساب باید شامل این دستور باشد.
- port number
- درگاهی که کارگزار SMTP روی آن گوش میدهد. پیشفرض 25 ("smtp") است، مگر اینکه از TLS بدون STARTTLS استفاده شود که در این صورت 465 ("smtps") خواهد بود.
- source_ip [IP]
- تنظیم یک نشانی IP مبدأ برای مقید کردن (bind) اتصال خروجی به آن. تنها در موارد خاص روی سیستمهای چنداتصاله (multi-home) مفید است. یک آرگومان خالی این ویژگی را غیرفعال میکند.
- proxy_host [IP|hostname]
- استفاده از یک پراکسی SOCKS. تمام ترافیک شبکه از طریق این میزبان پراکسی عبور خواهد کرد، از جمله پرسوجوهای DNS، به جز پرسوجوی DNS که ممکن است برای یافتن نشانی نام خود میزبان پراکسی لازم باشد (با استفاده از نشانی IP به عنوان نام میزبان پراکسی میتوان از این امر اجتناب کرد). یک آرگومان خالی برای hostname استفاده از پراکسی را غیرفعال میکند. نسخه پشتیبانیشده پروتکل SOCKS برابر با 5 است. اگر میخواهید از این قابلیت همراه با Tor استفاده کنید، بخش «استفاده از msmtp با Tor» را در ادامه ببینید.
- proxy_port [number]
- تنظیم شماره درگاه برای میزبان پراکسی. یک آرگومان خالی برای number این مقدار را به درگاه پیشفرض بازمیگرداند.
- socket socketname
- تنظیم نام فایل یک سوکت دامنه یونیکس (unix domain socket) برای اتصال به آن. این گزینه بر هر دو مورد host/port و proxy_host/proxy_port تقدم دارد.
- timeout (off|seconds)
- تنظیم یا لغو تنظیم زمان انتظار شبکه (network timeout)، به ثانیه. آرگومان off به معنای عدم تعیین زمان انتظار است که به مفهوم استفاده از پیشفرض سیستمعامل خواهد بود.
- protocol (smtp|lmtp)
- تنظیم پروتکل مورد استفاده. در حال حاضر فقط SMTP و LMTP پشتیبانی میشوند. پیشفرض SMTP است. برای درگاههای پیشفرض، دستور port در بالا را ببینید.
- domain argument
- از این
دستور برای
تعیین
آرگومان
دستور SMTP EHLO (یا LMTP
LHLO)، و بخش
دامنه در
سرآیندهای
Message-ID در صورتی
که msmtp آنها
را تولید
کند،
استفاده
میشود
(دستور set_msgid_header
را ببینید).
مقدار پیشفرض localhost نامناسب است اما معمولاً برای EHLO کار میکند. با این حال این مقدار برای سرآیندهای Message-ID منطقی نیست. برای جزئیات دستور set_msgid_header را ببینید.
گزینههای محتمل شامل بخش دامنه نشانی ایمیل شما (provider.example برای joe@provider.example) یا نام دامنه کاملاً واجد شرایط (FQDN) میزبان شما (در صورت موجود بودن) است.
الگوهای جایگزینی زیر پشتیبانی میشوند:
الگوی %H با مقدار $HOSTNAME یا در صورت ناموفق بودن با نام میزبان سیستم جایگزین خواهد شد.
الگوی %C با نام کانونیکال (canonical name) مربوط به %H جایگزین خواهد شد.
الگوی %M با محتوای /etc/mailname جایگزین خواهد شد (بسته به پیکربندی ساخت ممکن است دایرکتوری متفاوتی استفاده شود؛ خروجی msmtp --version را ببینید و به دنبال مکان فایل پیکربندی سیستم بگردید)..IP "auth [(on|off|method)]" فعال یا غیرفعال کردن احراز هویت و در صورت تمایل انتخاب یک روش برای استفاده. آرگومان on یک روش را بهطور خودکار انتخاب میکند.
معمولاً یک نام کاربری و یک گذرواژه برای احراز هویت استفاده میشوند. نام کاربری در فایل پیکربندی با دستور user مشخص میشود. پنج روش مختلف برای تعیین گذرواژه وجود دارد:
۱. افزودن گذرواژه به دستهکلید سیستم. دستهکلیدهایی که در حال حاضر پشتیبانی میشوند عبارتند از دستهکلید 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 را با نام کاربری خود جایگزین کنید.
۲. ذخیره گذرواژه در یک فایل رمزگذاریشده و استفاده از passwordeval برای تعیین دستوری جهت رمزگشایی آن فایل، مثلاً با استفاده از GnuPG. بخش EXAMPLES را ببینید.
۳. ذخیره گذرواژه در فایل پیکربندی با استفاده از دستور password. (معمولاً ذخیره گذرواژهها در فایلهای متن خام ایده مناسبی در نظر گرفته نمیشود. اگر به هر حال این کار را انجام میدهید، باید مطمئن شوید که این فایل تنها توسط خودتان قابل خواندن است.)
۴. ذخیره گذرواژه در ~/.netrc. این روش احتمالاً منسوخ شده است.
۵. تایپ کردن گذرواژه در ترمینال در زمان نیاز.
توصیه میشود از روش ۱ یا ۲ استفاده کنید.
روشهای احراز هویت متعددی وجود دارد. اکثر کارگزارها فقط از برخی از آنها پشتیبانی میکنند.
روشهای نام کاربری / گذرواژه زیر پشتیبانی میشوند: plain (یک روش ساده با متن خام، با کدگذاری base64 که تقریباً توسط همه کارگزارها پشتیبانی میشود)، scram-sha-1 و scram-sha-1-plus (روشی که از گذرواژههای متن خام اجتناب کرده و کارگزار را ملزم میسازد تا ثابت کند که گذرواژه (درهمسازیشده و نمکخورده) را در اختیار دارد، که از برخی حملات مرد میانی جلوگیری میکند. گونهٔ -plus علاوه بر این، از اطلاعات اتصال کانال TLS برای تضمینهای امنیتی حتی بهتر استفاده میکند)، scram-sha-256 و scram-sha-256-plus (مشابه قبلی اما با تابع درهمسازی قویتر)، cram-md5 (یک روش منسوخشده که از گذرواژههای متن خام دوری میکند، اما دیگر امن تلقی نمیشود)، digest-md5 (یک روش منسوخشده و بیش از حد پیچیده که از گذرواژههای متن خام اجتناب میکرد، اما دیگر امن در نظر گرفته نمیشود)، login (یک روش غیراستاندارد با متن خام، شبیه به روش plain اما بدتر از آن)، ntlm (یک روش غیراستاندارد و نامفهوم که اکنون شکسته شده در نظر گرفته میشود؛ این روش گاهی به یک پارامتر دامنه ویژه نیاز دارد که از طریق ntlmdomain ارسال میشود).
اگر هیچ روشی مشخص نشده باشد، msmtp بر اساس مزایای امنیتی یکی را بهطور خودکار انتخاب خواهد کرد. در صورت استفاده از 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 میتوان برای انتقال نشانههایی که مرتباً تغییر میکنند از یک اسکریپت یا یک متغیر محیطی به msmtp استفاده کرد)، external (احراز هویت خارج از پروتکل اتفاق میافتد، معمولاً با ارسال یک گواهی کلاینت TLS، و این روش صرفاً تأیید میکند که این احراز هویت موفقیتآمیز بوده است)، و gssapi (چارچوب Kerberos مدیریت احراز هویت امن را بر عهده میگیرد و تنها یک نام کاربری لازم است).
اینکه آیا یک روش خاص پشتیبانی میشود یا خیر، به کتابخانه احراز هویت زیربنایی و نسخه آن بستگی دارد. از --version برای یافتن اینکه کدام روشها پشتیبانی میشوند استفاده کنید. - user login
- تنظیم نام کاربری برای احراز هویت. یک آرگومان خالی نام کاربری را لغو میکند.
- password secret
- تنظیم گذرواژه برای احراز هویت. یک آرگومان خالی گذرواژه را لغو میکند. برای جلوگیری از ذخیره گذرواژههای متن خام در فایل پیکربندی، استفاده از دستور passwordeval یا یک دستهکلید را به جای این دستور در نظر داشته باشید.
- passwordeval [cmd]
- تنظیم
گذرواژه
احراز هویت
بر روی
خروجی (stdout)
دستور cmd. از
این
سازوکار
میتوان
برای مثال
جهت
رمزگشایی
بلادرنگ
فایلهای
گذرواژه یا
پرسوجو از
دستهکلیدها،
و بدین
ترتیب
اجتناب از
ذخیره
گذرواژههای
متن خام
استفاده
کرد.
دستور cmd نباید در ورودی استاندارد تداخلی ایجاد کند؛ در صورت شک داشتن، < /dev/null را به آن الحاق کنید. - ntlmdomain [domain]
- تنظیم یک دامنه برای روش احراز هویت ntlm. این گزینه منسوخ شده است.
- tls [(on|off)]
- فعال یا
غیرفعال
کردن 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 صادرکننده گواهی (تا بتوانید از طریق tls_trust_file به آن CA اعتماد کنید)، و اثر انگشت گواهی (تا بتوانید از طریق 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) تعیین کنید. - tls_starttls [(on|off)]
- انتخاب حالت گونهٔ TLS: شروع TLS از درون نشست (on، پیشفرض)، یا تونل کردن نشست از طریق TLS (off).
- tls_trust_file file
- فعال کردن اعتبارسنجی گواهی کارگزار با استفاده از فهرستی از مراجع صدور گواهی (CA) مورد اعتماد. مقدار پیشفرض، مقدار ویژه "system" است که پیشفرض سیستم را انتخاب میکند. یک آرگومان خالی اعتماد به CAها را غیرفعال میکند. اگر فایلی را انتخاب کنید، باید در قالب PEM باشد، و همچنین باید از tls_crl_file استفاده کنید.
- tls_crl_file [file]
- این گزینه
یک فایل
فهرست
ابطال
گواهی (CRL) را
برای TLS
تنظیم
میکند تا
گواهیهای
باطلشده
بررسی شوند
(یک آرگومان
خالی، که
پیشفرض
است، این
ویژگی را
غیرفعال
میکند).
پروتکل OCSP جایگزینی برای فایلهای CRL است. هنگامی که از GnuTLS استفاده میشود، اطلاعات OCSP منگنهشده (stapled) به طور خودکار بررسی خواهند شد و افزونه MustStaple در TLS پشتیبانی میشود، با این حال در صورت مفقود بودن اطلاعات OCSP منگنهشده، هیچ پرسوجوی دستی OCSP ارسال نخواهد شد. در سایر کتابخانههای TLS، ممکن است رفتار متفاوت باشد. - tls_fingerprint [fingerprint]
- تنظیم اثر انگشت یک گواهی تکی برای پذیرش در TLS. به این گواهی صرفنظر از محتویاتش اعتماد خواهد شد (این دستور بر tls_trust_file اولویت دارد و آن را باطل میکند). اثر انگشت باید از نوع SHA256 باشد، اما برای سازگاری عقبروی میتواند از نوع SHA1 یا MD5 نیز باشد (لطفاً از این کار خودداری کنید). قالب باید به شکل 01:23:45:67:.... باشد. برای دریافت اثر انگشت گواهی کارگزار از --serverinfo --tls --tls-certcheck=off --tls-fingerprint= استفاده کنید.
- tls_key_file file
- ارسال یک گواهی کارخواه به کارگزار (از این گزینه همراه با tls_cert_file} استفاده کنید). این فایل باید شامل کلید خصوصی یک گواهی در قالب PEM باشد. یک آرگومان خالی این ویژگی را غیرفعال میکند..IP "tls_cert_file file" ارسال یک گواهی کارخواه به کارساز (همراه با tls_key_file استفاده شود). فایل باید شامل یک گواهی در قالب PEM باشد. یک آرگومان خالی این ویژگی را غیرفعال میکند.
- tls_certcheck [(on|off)]
- فعال یا غیرفعال کردن بررسیهای گواهی کارساز. این بررسیها بهطور پیشفرض فعال هستند. غیرفعال کردن آنها tls_trust_file و tls_fingerprint را لغو میکند. هشدار: زمانی که این بررسیها غیرفعال باشند، نشستهای TLS امن نخواهند بود!
- tls_priorities [priorities]
- تنظیم
اولویتها
برای
پارامترهای
نشست TLS.
مقدار
پیشفرض
توسط
کتابخانهٔ
TLS تعیین
میشود و
میتوان آن
را با
استفاده از
یک آرگومان
خالی برای
این دستور
انتخاب کرد.
تفسیر
رشتهٔ priorities
به
کتابخانهٔ
TLS بستگی
دارد. از --version
برای اطلاع
از اینکه
از کدام
کتابخانهٔ
TLS استفاده
میکنید
بهره
بگیرید.
برای GnuTLS، بخش Priority Strings را در راهنما ببینید.
برای libtls، رشتهٔ priorites فهرستی از رشتههای پارامتر است که با فاصله از هم جدا شدهاند و پیشوند آنها یکی از 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_override [host]
- بهطور پیشفرض، اعتبارسنجی میزبان TLS از نام میزبانی که توسط دستور host مشخص شده استفاده میکند. این دستور اجازه میدهد از نام میزبان متفاوتی برای اعتبارسنجی استفاده شود. این گزینه فقط در موارد خاص کاربرد دارد.
- tls_min_dh_prime_bits [bits]
- منسوخ شده است، بهجای آن از tls_priorities استفاده کنید. تنظیم یا لغو تنظیم حداقل تعداد بیتهای اول Diffie-Hellman (DH) پذیرفتهشده برای نشستهای TLS. مقدار پیشفرض توسط کتابخانهٔ TLS تعیین میشود و میتوان با استفاده از یک آرگومان خالی برای این دستور آن را برگزید. مقدار پیشفرض را تنها در صورتی کاهش دهید (برای مثال به 512 بیت) که هیچ راه دیگری برای برقراری TLS با کارساز دوردست وجود نداشته باشد.
- from envelope_from
- تنظیم
نشانی envelope-from.
الگوهای
جایگزینی
زیر
پشتیبانی
میشوند:
%F با نشانی استخراجشده از سرآیند From نامه، یا در صورت وجود سرآیند Resent-From پیش از هر سرآیند From، با آن جایگزین خواهد شد.
%U با $USER، یا در صورت عدم موفقیت با $LOGNAME، و در صورت عدم موفقیت با نام کاربری فردی که msmtp را اجرا میکند جایگزین خواهد شد.
%H با $HOSTNAME، یا در صورت عدم موفقیت با نام میزبان سامانه جایگزین خواهد شد.
%C با نام متعارف (canonical name) متعلق به %H جایگزین خواهد شد.
%M با محتویات /etc/mailname جایگزین خواهد شد (بسته به پیکربندی ساخت ممکن است دایرکتوری متفاوتی استفاده شود؛ خروجی msmtp --version را ببینید و به دنبال مکان فایل پیکربندی سامانه بگردید).
توجه داشته باشید که دستور منسوخ auto_from این نشانی envelope-from را بازنویسی میکند.
برای اجبار به استفاده از این نشانی envelope-from و نادیده گرفتن گزینهٔ -f / --from، دستور allow_from_override را ببینید.
علاوه بر این، نشانی envelope-from میتواند یک الگوی عامهنما (wildcard) مانند آنچه در تطبیق نام فایل در پوسته استفاده میشود باشد. این حالت زمانی است که شامل یکی از نویسههای ?، * یا [ باشد. این کار اجازه میدهد نشانیهای گوناگون envelope-from ارائهشده با گزینهٔ --from با یک حساب کاربری منطبق شوند. - from_full_name name
- تنظیم یک نام کامل برای استفاده در سرآیند From در صورتی که msmtp سرآیندی اضافه کند. دستور set_from_header را ببینید.
- allow_from_override (on|off)
- بهطور پیشفرض، گزینهٔ --from دستور from را لغو میکند. برای غیرفعال کردن این رفتار، آن را روی off تنظیم کنید.
- dsn_notify (off|condition)
- این دستور شرایطی را تنظیم میکند که در آن سامانهٔ ایمیل باید پیامهای DSN (اعلان وضعیت تحویل - Delivery Status Notification) را ارسال کند. آرگومان off درخواستهای صریح DSN را غیرفعال میکند، که بدین معنی است که سامانهٔ ایمیل خود تصمیم میگیرد چه زمانی پیامهای DSN را ارسال کند. این حالت پیشفرض است. مقدار condition باید never باشد تا هرگز درخواستی برای اعلان ارسال نشود، یا فهرستی جداشده با کاما (بدون فاصله!) از یک یا چند مورد زیر باشد: failure برای درخواست اعلان هنگام شکست در ارسال، delay برای مطلع شدن از تاخیرهای پیام، و success برای مطلع شدن از ارسال موفقیتآمیز. کارساز SMTP باید از افزونهٔ DSN پشتیبانی کند.
- dsn_return (off|amount)
- این دستور تعیین میکند چه مقدار از یک نامه در پیامهای DSN (اعلان وضعیت تحویل) بازگردانده شود. آرگومان off درخواستهای صریح DSN را غیرفعال میکند، که به این معنی است که سامانهٔ ایمیل تعیین میکند چه مقدار از نامه در پیامهای DSN بازگردانده شود. این حالت پیشفرض است. مقدار amount باید headers باشد تا تنها سرآیندهای پیام بازگردانده شوند، یا full تا کل نامه بازگردانده شود. کارساز SMTP باید از افزونهٔ DSN پشتیبانی کند.
- set_from_header [(auto|on|off)]
- زمان تنظیم
سرآیند From:
مقدار auto در
صورتی که
نامه
سرآیند From
نداشته
باشد آن را
اضافه
میکند (این
حالت
پیشفرض
است)، مقدار
on همیشه
سرآیند From را
تنظیم کرده
و
سرآیندهای
موجود را
بازنویسی
میکند، و
مقدار off
هرگز
سرآیند From را
تنظیم
نمیکند.
اگر کارساز ایمیل نامه را به دلیل عدم تطابق سرآیند From با نشانی envelope-from رد کند (یک اقدام رایج ضد هرزنامه)، ممکن است بخواهید این گزینه را روی on تنظیم کنید.
سرآیند From بر اساس نشانی envelope-from ایجاد میشود. برای جلوگیری از تنظیم نشانی envelope-from توسط برنامهها، allow_from_override را غیرفعال کنید.
برای سازگاری با نسخههای قدیمیتر، add_missing_from_header [(on|off)] همچنان پشتیبانی میشود و با تنظیمات auto و off مطابقت دارد. - set_date_header [(auto|off)]
- زمان تنظیم
سرآیند Date:
مقدار auto در
صورتی که
نامه فاقد
سرآیند Date
باشد آن را
اضافه
میکند (این
حالت
پیشفرض
است)، و
مقدار off
هرگز
سرآیند Date را
تنظیم
نمیکند.
برای سازگاری با نسخههای قدیمیتر، add_missing_date_header [(on|off)] همچنان پشتیبانی میشود و با تنظیمات auto و off مطابقت دارد. - set_msgid_header [(auto|off)]
- زمان تنظیم
سرآیند Message-ID:
مقدار auto در
صورتی که
نامه
سرآیند Message-ID
نداشته
باشد آن را
اضافه
میکند (این
حالت
پیشفرض
است)، و
مقدار off
هرگز
سرآیند Message-ID
را تنظیم
نمیکند.
شناسههای Message-ID به شکل hash@domain هستند، که در آن hash یک درهمسازی روی برخی مقادیر است که نامه را بهطور یکتا مشخص میکنند، و domain یا مقدار دستور domain است (مگر اینکه مقدار پیشفرض آن localhost باشد)، یا بخش دامنه از نشانی envelope-from (در صورت موجود بودن)، یا نام میزبان کارساز SMTP است. - set_to_header [(on|off|undisclosed_recipients)]
- هنگامی که
روی on یا
undisclosed_recipients تنظیم
شود،
سرآیندهای
اصلی To، Cc و Bcc
حذف شده و
یک سرآیند To
جدید اضافه
میشود.
هنگامی که
روی on
تنظیم شود،
این سرآیند
جدید شامل
همهٔ
گیرندگان
خواهد بود،
صرفنظر از
اینکه در
ابتدا
چگونه مشخص
شده بودند.
هنگامی که
روی undisclosed_recipients
تنظیم شود،
سرآیند To
برابر با "To:
undisclosed-recipients:;" خواهد
بود. تنظیم
پیشفرض off
است.
برای سازگاری با نسخههای قدیمیتر، undisclosed_recipients [(on|off)] همچنان پشتیبانی میشود و با تنظیمات undisclosed_recipients و off مطابقت دارد. - remove_bcc_headers [(on|off)]
- این دستور کنترل میکند که آیا سرآیندهای Bcc حذف شوند یا خیر. حالت پیشفرض حذف آنهاست.
- logfile [file]
- یک آرگومان
خالی ثبت
وقایع را
غیرفعال
میکند (این
حالت
پیشفرض
است).
هنگامی که ثبت وقایع با انتخاب یک فایل گزارش فعال شود، msmtp برای هر نامهای که از طریق حسابی که این فایل گزارش برای آن انتخاب شده ارسال میکند، یک خط به فایل گزارش میافزاید.
این خط شامل اطلاعات زیر خواهد بود: تاریخ و زمان در قالبی که با logfile_time_format مشخص شده، نام میزبان کارساز SMTP، وضعیت استفاده از TLS، وضعیت استفاده از احراز هویت، نام کاربری احراز هویت (تنها در صورت استفاده از احراز هویت)، نشانی envelope-from، نشانیهای گیرندگان، اندازهٔ نامه به صورتی که به کارساز منتقل شده است (تنها در صورت تحویل موفقیتآمیز)، کد وضعیت SMTP و پیام خطای SMTP (تنها در صورت بروز خطا و در صورت وجود)، پیام خطا (تنها در صورت بروز خطا و در صورت وجود)، کد خروج (از sysexits.h؛ مقدار EX_OK نشاندهندهٔ موفقیت است).
اگر نام فایل یک خط تیره (-) باشد، msmtp خط گزارش را در خروجی استاندارد چاپ میکند. - logfile_time_format [fmt]
- تنظیم یا لغو تنظیم قالب زمان فایل گزارش. این مقدار بهعنوان رشتهٔ قالب برای تابع strftime() استفاده خواهد شد. یک آرگومان خالی مقدار پیشفرض را برمیگزیند ("%b %d %H:%M:%S"). مقدار ویژهٔ none از نمایش خروجی زمان جلوگیری میکند.
- syslog [(on|off|facility)]
- فعال یا
غیرفعال
کردن
گزارشگیری
از طریق syslog.
بخش (facility)
میتواند
یکی از
مقادیر LOG_USER،
LOG_MAIL، LOG_LOCAL0، ...، LOG_LOCAL7
باشد. مقدار
پیشفرض LOG_USER
است.
هر بار که msmtp تلاش میکند نامهای را از طریق حسابی که حاوی این دستور syslog است ارسال کند، یک ورودی را با facility انتخابی در سرویس syslog ثبت خواهد کرد.
این خط شامل اطلاعات زیر خواهد بود: نام میزبان کارساز SMTP، وضعیت استفاده از TLS، وضعیت استفاده از احراز هویت، نشانی envelope-from، نشانیهای گیرندگان، اندازهٔ نامه به صورتی که به کارساز منتقل شده است (تنها در صورت تحویل موفقیتآمیز)، کد وضعیت SMTP و پیام خطای SMTP (تنها در صورت بروز خطا و در صورت وجود)، پیام خطا (تنها در صورت بروز خطا و در صورت وجود)، کد خروج (از sysexits.h؛ مقدار EX_OK نشاندهندهٔ موفقیت است).
- aliases [file]
- جایگزینی
گیرندگان
محلی با
نشانیهای
موجود در
فایل
نامهای
مستعار (aliases).
فایل aliases یک
فایل متنی
ساده حاوی
نگاشتهای
میان یک
نشانی محلی
و فهرستی از
نشانیهای
جایگزین
است.
نگاشتها
به شکل زیر
هستند:
local: someone@example.com, person@domain.example
نشانیهای جایگزین چندگانه با کاما جدا میشوند. توضیحها با `#' آغاز میشوند و تا انتهای خط ادامه مییابند.
نشانی محلی default اهمیت ویژهای دارد و در صورتی که نشانی محلی در فایل aliases یافت نشود با آن مطابقت داده میشود. اگر هیچ نام مستعار default پیدا نشود، نشانی محلی دستنخورده باقی میماند.
توجه داشته باشید که گسترش نام مستعار تنها روی پاکت نامه تأثیر میگذارد. سرآیندهای To و Cc تغییر داده نمیشوند.
یک آرگومان خالی برای دستور aliases جایگزینی نشانیهای محلی را غیرفعال میکند. این حالت پیشفرض است..IP "auto_from [(on|off)]" منسوخ شده است؛ با استفاده از الگوهای جایگزینی دستور from میتوانید به همین نتیجه و حتی فراتر از آن دست یابید.
فعال یا غیرفعال کردن خودکار نشانیهای envelope-from. مقدار پیشفرض off است. هنگام فعال بودن، یک نشانی envelope-from به شکل user@domain ایجاد خواهد شد. بخش محلی (local part) روی USER یا اگر ناموفق باشد روی LOGNAME یا در صورت ناموفق بودن آن، روی نام کاربری ورود کاربر فعلی تنظیم خواهد شد. بخش دامنه میتواند با دستور maildomain تنظیم شود. اگر maildomain خالی باشد، نشانی envelope-from تنها شامل نام کاربری بوده و بخش دامنه نخواهد داشت. هنگامی که auto_from غیرفعال است، نشانی envelope-from باید بهطور صریح تنظیم شود. - maildomain [domain]
- منسوخ شده
است؛ با
استفاده از
الگوهای
جایگزینی
دستور from
میتوانید
به همین
نتیجه و
فراتر از آن
دست یابید.
تنظیم یک بخش دامنه برای ایجاد نشانی envelope-from. این گزینه تنها زمانی استفاده میشود که auto_from فعال (on) باشد. دامنه میتواند خالی باشد.
مثالها (EXAMPLES)
فایل پیکربندی
# نمونهای
برای فایل
پیکربندی
کاربر ~/.msmtprc
#
# این فایل بر
TLS و احراز
هویت تمرکز
دارد.
ویژگیهایی
که در اینجا
استفاده
نشدهاند
شامل # ثبت
گزارشها
(logging)،
مهلتهای
زمانی (timeouts)،
پروکسیهای
SOCKS،
پارامترهای
TLS، تنظیمات #
اعلان
وضعیت
تحویل (DSN) و
موارد دیگر
است.
# تنظیم
مقادیر
پیشفرض
برای همه
حسابهای
بعدی.
defaults
# استفاده
از درگاه
ارسال
ایمیل 587 به
جای درگاه SMTP 25.
port 587
# همیشه از TLS
استفاده
شود.
tls on
# تعیین
فهرستی از
CAهای معتبر
برای TLS.
پیشفرض
استفاده از
تنظیمات
سیستم است،
اما #
میتوانید
فایل
دلخواه خود
را انتخاب
کنید.
#tls_trust_file /etc/ssl/certs/ca-certificates.crt
# یک سرویس
ایمیل
رایگان
account freemail
# نام
میزبان
کارگزار SMTP
host smtp.freemail.example
# به عنوان
جایگزینی
برای tls_trust_file،
میتوانید
از tls_fingerprint # برای
سنجاق کردن
یک گواهی
تکی
استفاده
کنید. در
صورت تغییر
گواهی سرور #
باید
اثرانگشت
را
بهروزرسانی
کنید، اما
دیگر یک
نفوذگر
نمیتواند
شما را فریب #
دهد تا یک
گواهی جعلی
را بپذیرید.
دریافت
اثرانگشت
با: # $ msmtp --serverinfo --tls --tls-certcheck=off
--host=smtp.freemail.example
#tls_fingerprint
00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33
# نشانی Envelope-from
from joe_smith@freemail.example
# احراز
هویت.
گذرواژه با
استفاده از
یکی از پنج
روش مشخص
میشود، به
زیر مراجعه
کنید.
auth on
user joe.smith
# روش ۱ گذرواژه: افزودن گذرواژه به دستهکلید (keyring) سیستم تا msmtp آن را # بهطور خودکار دریافت کند. برای تنظیم گذرواژه دستهکلید با استفاده از libsecret گنوم: # $ secret-tool store --label=msmtp \ # host smtp.freemail.example \ # service smtp \ # user joe.smith
# روش ۲
گذرواژه:
ذخیره
گذرواژه در
یک فایل
رمزنگاریشده
و مشخص کردن
دستوری
برای msmtp # جهت
رمزگشایی
آن. این روش
معمولاً
همراه با GnuPG
استفاده
میشود،
مانند این
مثال. #
معمولاً gpg-agent
یکبار
گذرواژه
رمزگشایی
را درخواست
میکند.
passwordeval gpg2 --no-tty -q -d ~/.msmtp-password.gpg
# روش ۳
گذرواژه:
ذخیره
مستقیم
گذرواژه در
همین فایل.
معمولاً
ذخیره کردن
گذرواژهها
# در
فایلهای
متنی ساده
ایده خوبی
نیست. اگر با
این وجود
این کار را
انجام
میدهید، #
حداقل
مطمئن شوید
این فایل
تنها توسط
خودتان
قابل
خواندن است.
#password secret123
# روش ۴ گذرواژه: ذخیره گذرواژه در ~/.netrc. این روش احتمالاً دیگر چندان کاربردی # ندارد.
# روش ۵ گذرواژه: گذرواژهای تعیین نکنید. در این صورت msmtp آن را از شما درخواست # میکند. این بدان معناست که هنگام اجرای msmtp باید بتوانید در ترمینال تایپ کنید.
# یک نشانی
ایمیل دوم
در همان
سرویس
ایمیل
رایگان
account freemail2 : freemail
from joey@freemail.example
# کارگزار SMTP
ارائهدهنده
خدمات
اینترنت (ISP)
شما
account isp
host mail.isp.example
from smithjoe@isp.example
auth on
user 12345
# تنظیم یک
حساب
پیشفرض
account default : freemail
استفاده از msmtp با Mutt
یک فایل
پیکربندی
برای msmtp
بسازید و
خطوط زیر را
به فایل
پیکربندی Mutt
خود اضافه
کنید:
set sendmail="/path/to/msmtp"
set use_from=yes
set realname="Your Name"
set from=you@example.com
set envelope_from=yes
گزینه envelope_from=yes به
Mutt اجازه
میدهد از
گزینه -f
برنامه msmtp
استفاده
کند.
بنابراین msmtp
نخستین
حسابی را که
با نشانی
مبدأ you@example.com
مطابقت
دارد
انتخاب
میکند.
همچنین،
میتوانید
از گزینه -a
استفاده
کنید:
set sendmail="/path/to/msmtp -a my-account"
یا همه چیز
را از طریق
خط فرمان
تنظیم کنید
(اما توجه
داشته
باشید که از
این طریق
نمیتوانید
گذرواژه
تعیین کنید):
set sendmail="/path/to/msmtp --host=mailhub -f me@example.com
--tls --tls-trust-file=trust.crt".PP
اگر در فایل
پیکربندی msmtp
خود چندین
حساب ایمیل
دارید و
اجازه
میدهید Mutt
با استفاده
از گزینه -f
حساب مناسب
را انتخاب
کند،
میتوانید
با خطوط
پیکربندی
زیر در Mutt به
راحتی بین
حسابها
جابهجا
شوید:
macro generic "<esc>1" ":set
from=you@example.com"
macro generic "<esc>2" ":set
from=you@your-employer.example"
macro generic "<esc>3" ":set
from=you@some-other-provider.example"
استفاده از msmtp با mail
یک حساب
پیشفرض
تعریف کنید
و خط زیر را
در ~/.mailrc خود
قرار دهید:
set sendmail="/path/to/msmtp"
استفاده از msmtp با Tor
از
تنظیمات
زیر
استفاده
کنید:
proxy_host 127.0.0.1
proxy_port 9050
tls on
از یک آدرس IP
به عنوان
نام میزبان
پروکسی
استفاده
کنید تا msmtp
هنگام
تحلیل آن،
پرسوجوی DNS
را نشت ندهد.
استفاده از TLS
برای
جلوگیری از
خوانده شدن
نشست SMTP شما
توسط
میزبانهای
خروجی (exit hosts)
الزامی است.
مقدار domain را
روی مقداری
که مایل به
افشای آن
نیستید
تنظیم
نکنید (در
صورت امکان
اصلاً آن را
مقداردهی
نکنید).
فایل نامهای مستعار (Aliases)
# نمونه فایل نامهای مستعار (aliases file)
# Joe و Jane به root
ارسال
ایمیلهای
root: joe_smith@example.com, jane_chang@example.com
# Mark به cron
ارسال
ایمیلهای
cron: mark_jones@example.com
# admin ارسال
تمام موارد
دیگر به
default: admin@domain.example
فایلها (FILES)
- SYSCONFDIR/msmtprc
- فایل پیکربندی سراسری سیستم. از گزینه --version برای یافتن مسیر SYSCONFDIR در سیستم خود استفاده کنید.
- ~/.msmtprc یا $XDG_CONFIG_HOME/msmtp/config
- فایل پیکربندی کاربر.
- ~/.netrc و SYSCONFDIR/netrc
- فایل netrc شامل اطلاعات ورود به سیستم است. msmtp پیش از درخواست گذرواژه، آن را در ~/.netrc و SYSCONFDIR/netrc جستجو خواهد کرد.
محیط (ENVIRONMENT)
- USER, LOGNAME
- این متغیرها هنگام ساخت نشانی envelope-from، نام کاربری ورود به سیستم را بازنویسی میکنند. LOGNAME تنها زمانی استفاده میشود که USER تنظیم نشده باشد.
- EMAIL, SMTPSERVER
- این متغیرهای محیطی تنها زمانی استفاده میشوند که نه --host و نه --account به کار نرفته باشند و هیچ حساب پیشفرضی در فایلهای پیکربندی تعریف نشده باشد. در این حالت، نام میزبان از SMTPSERVER و نشانی envelope-from از EMAIL گرفته میشود، مگر اینکه توسط --from یا --read-envelope-from بازنویسی شوند. در حال حاضر SMTPSERVER باید تنها شامل یک نام میزبان ساده (بدون URL) باشد و EMAIL باید تنها شامل یک نشانی ساده (بدون نام یا اطلاعات اضافی) باشد.
نویسندگان (AUTHORS)
برنامه msmtp
توسط Martin Lambers <marlam@marlam.de>
نوشته شده
است.
سایر
نویسندگان
در فایل AUTHORS در
توزیع کد
منبع فهرست
شدهاند..SH
"همچنین
ببینید (SEE ALSO)"
sendmail(8), netrc(5) یا ftp(1)
| 2024-10 |