| MSMTPD(1) | General Commands Manual | MSMTPD(1) |
نام (NAME)
msmtpd - یک سرور کمینه SMTP
خلاصه دستور (SYNOPSIS)
msmtpd [option...]
توضیحات (DESCRIPTION)
برنامه msmtpd
یک سرور
کمینه SMTP است
که
ایمیلها
را برای
تحویل به msmtp
(یا
برنامهای
دیگر) هدایت
(pipe) میکند.
میتوان از
آن برای
سرویسهای
سیستمی که
انتظار یک
سرور SMTP بر
روی میزبان
محلی دارند
استفاده
کرد، یا
توسط
کاربران
نهایی به
عنوان روشی
برای
مدیریت
ایمیلهای
خروجی از
طریق msmtp
همراه با
کلاینتهای
ایمیلی که
بر استفاده
از SMTP اصرار
دارند به
کار گرفته
شود. بخش
«مثالها
(EXAMPLES)» در زیر
شامل
نمونههایی
برای هر دو
مورد
کاربرد است.
برنامه msmtpd به
طور
پیشفرض
روی 127.0.0.1 و پورت
25 گوش فرا
میدهد،
اما همچنین
میتواند
بدون
سوکتهای
شبکه
اختصاصی
خود در حالت
inetd اجرا شود،
جایی که یک
نشست SMTP
منفرد را
روی ورودی /
خروجی
استاندارد
مدیریت
میکند.
در رشتهای
که دستوری
را مشخص
میکند که msmtpd
هر ایمیل را
به آن پایپ
میکند،
اولین
رخداد %F با
نشانی
فرستنده
پاکت (envelope from)
جایگزین
خواهد شد.
علاوه بر
این، تمام
گیرندگان
ایمیل به
عنوان
آرگومان
ضمیمه
خواهند شد.
این دستور
نباید در
خروجی
استاندارد
بنویسد،
چرا که این
کار نشست SMTP
را مختل
میکند.
اگر دستوری
که ایمیل به
آن هدایت
شده است
خطایی
گزارش دهد،
این مورد به
طور معمول
توسط msmtpd به
عنوان یک
شکست دائمی
گزارش
میشود (کد
وضعیت سرور
SMTP شماره 554). این
دستور
میتواند
به صورت
اختیاری با
استفاده از
کدهای
بازگشتی
تعریفشده
در sysexits.h
خطاهای
موقت را
اعلام کند،
مثلاً 75 برای
EX_TEMPFAIL. این
موارد سپس
به عنوان
خطاهای
موقت توسط msmtpd
گزارش
میشوند (کد
وضعیت سرور
SMTP شماره 451)، که
به این معنی
است که
کلاینت
باید بعداً
دوباره
تلاش کند.
برای
جلوگیری از
سوءاستفاده،
msmtpd تنها
تعداد
محدودی
نشست
همزمان SMTP
را مجاز
میداند، و
اگر احراز
هویت فعال
باشد و خطای
احراز هویت
رخ دهد،
درخواستهای
احراز هویت
بعدی در هر
نشست SMTP (برای
مدت زمان
محدودی)
تنها پس از
یک تأخیر
کوتاه پاسخ
داده
خواهند شد.
گزینهها (OPTIONS)
- --version
- چاپ اطلاعات نسخه
- --help
- چاپ راهنما
- --inetd
- شروع یک نشست SMTP منفرد روی stdin/stdout
- --interface=ip
- گوش دادن روی نشانی IPv6 یا IPv4 مشخصشده به جای 127.0.0.1
- --port=number
- گوش دادن روی شماره پورت مشخصشده به جای 25
- --log=none|syslog|filename
- تنظیم ثبت لاگ: none (پیشفرض)، syslog، یا ثبت در فایل مشخصشده.
- --command=cmd
- هدایت (pipe) ایمیلها به cmd به جای msmtp. اطمینان حاصل کنید که این دستور را با -- پایان دهید تا گزینهها از آرگومانها جدا شوند.
- --auth=user[,passwordeval]
- الزام احراز هویت با این نام کاربری. گذرواژه از طریق دستور passwordeval دادهشده بازیابی میشود (این سازوکار دقیقاً مانند passwordeval در msmtp عمل میکند) یا اگر مشخص نشده باشد، از جاکلیدی (keyring) یا در صورت عدم موفقیت، از طریق اعلان ورودی (prompt) دریافت خواهد شد.
مثالها (EXAMPLES)
استفاده
از msmtpd به
عنوان یک
سرویس
سیستمی
تنها از یک
رابط محلی
برای گوش
دادن
استفاده
کنید. msmtpd را با
دسترسیها
و مجوزهای
کاربری
مناسب اجرا
کنید (مثلاً
از CAP_NET_BIND_SERVICE
برای اتصال
به پورت 25 به
جای اجرا به
عنوان ریشه
استفاده
کنید، یا از
قابلیتهای
سرویس inetd در systemd
بهره ببرید).
توجه داشته
باشید که
دستور
هدایتشده
تحت همان
کاربری
اجرا خواهد
شد که msmtpd اجرا
میشود. ثبت
گزارش در syslog
را با --log=syslog
فعال کنید.
مثال برای
مدیریت msmtpd با
start-stop-daemon:
# start msmtpd
start-stop-daemon --start --pidfile /var/run/msmtpd.pid --make-pidfile --chuid
msmtpd --background --exec /usr/local/bin/msmtpd -- --command
'/usr/local/bin/msmtp -f %F --'
# stop msmtpd
start-stop-daemon --stop --pidfile /var/run/msmtpd.pid --remove-pidfile
--quiet --signal TERM
استفاده از
msmtpd برای
مدیریت
ایمیلهای
خروجی در یک
کلاینت
ایمیل
مبتنی بر SMTP
برخی
کلاینتهای
ایمیل
نمیتوانند
ایمیلهای
خروجی را با
برنامهای
مانند msmtp
ارسال کنند
و در عوض بر
استفاده از
یک سرور SMTP
اصرار
دارند.
میتوانید
msmtpd را طوری
پیکربندی
کنید که آن
سرور SMTP باشد
و
ایمیلهای
خروجی شما
را به msmtp
تحویل دهد.
(به همین
ترتیب،
برخی
کلاینتهای
ایمیل
نمیتوانند
ایمیلهای
دریافتی را
از صندوق
پستی محلی
دریافت
کنند و بر
استفاده از
سرور POP3 یا IMAP
اصرار
دارند. شما
میتوانید
mpopd را به
گونهای
پیکربندی
کنید که آن
سرور POP3 باشد
و
ایمیلهای
دریافتی را
از صندوق
پستی محلی
ارائه دهد.
بخش مربوطه
را در
راهنمای mpop
ببینید.)
برای این
منظور، msmtpd
باید روی یک
پورت
غیرممتاز
(بدون
دسترسی
ریشه)،
مثلاً 2500 گوش
دهد. علاوه
بر این، msmtpd
باید
نیازمند
احراز هویت
باشد زیرا
در غیر این
صورت هر کسی
که به آن
متصل شود
میتواند
با استفاده
از حساب شما
ایمیل
بفرستد،
حتی اگر
صرفاً سایر
کاربران یا
فرآیندهای
روی ماشین
محلی شما
باشند.
بیایید از
نام کاربری
msmtpd-user برای این
منظور
استفاده
کنیم. شما دو
راه برای
مدیریت
گذرواژه
دارید:
- ذخیره گذرواژه در جاکلیدی (keyring) خود، مثلاً با secret-tool store --label=msmtpd host localhost service smtp user msmtpd-user. در این حالت، از گزینه --auth=msmtpd-user در msmtpd استفاده کنید.
- ذخیره گذرواژه در یک فایل رمزگذاریشده و استفاده از سازوکار passwordeval. مثال برای gpg: msmtpd ... --auth=msmtpd-user,'gpg -q -d ~/.msmtpd-password.gpg'
دستور
کامل در این
صورت (با
استفاده از
جاکلیدی)
عبارت است
از: msmtpd --port=2500 --auth=msmtpd-user
--command='/path/to/your/msmtp -f %F --'
سپس
نرمافزار
کلاینت
ایمیل باید
پیکربندی
شود تا از localhost
روی پورت 2500
برای
ایمیلهای
خروجی از
طریق SMTP
استفاده
کند و با
کاربر msmtpd-user و
گذرواژهای
که انتخاب
کردهاید
احراز هویت
انجام دهد.
کلاینت
ایمیل
احتمالاً
اخطار
خواهد داد
که سرور SMTP از TLS
پشتیبانی
نمیکند،
اما در این
مورد خاص
مشکلی وجود
ندارد زیرا
تمام
ارتباطات
بین کلاینت
ایمیل شما و
msmtpd روی ماشین
محلی باقی
میماند.
این
پیکربندی
با چندین
حساب ایمیل
نیز به خوبی
کار میکند.
برنامه msmtp
حساب مناسب
را بر اساس
نشانی envelope-from
دادهشده
به آن از
طریق -f %F
انتخاب
خواهد کرد.
شما نیازی
به چندین
نمونه از msmtpd
برای این
منظور
ندارید، و
بنابراین
تنها به یک
سرور SMTP در
پیکربندی
کلاینت
ایمیل خود
احتیاج
خواهید
داشت.
همچنین ببینید (SEE ALSO)
| 2021-09 |