| SMTP-SINK(1) | General Commands Manual | SMTP-SINK(1) |
نام (NAME)
smtp-sink - کارساز آزمایشی موازیشدهٔ SMTP/LMTP
خلاصه دستور (SYNOPSIS)
smtp-sink [options] [inet:][host]:port backlog
smtp-sink [options] unix:pathname backlog
توضیحات (DESCRIPTION)
برنامهٔ smtp-sink روی میزبان (یا نشانی) و پورت مشخصشده گوش فرا میدهد. این برنامه پیامهای SMTP را از شبکه دریافت کرده و آنها را دور میریزد. هدف از این کار سنجش کارایی کلاینت است، نه انطباق با پروتکل.
همچنین میتوان smtp-sink را بهگونهای پیکربندی کرد که هر تراکنش تحویل نامه را درون یک فایل ذخیره کند. از آنجا که تأخیر دیسک در مقایسه با تأخیر شبکه زیاد است، این حالت کاری میتواند حداکثر کارایی را به میزان چندین مرتبهٔ بزرگی کاهش دهد.
اتصالها میتوانند روی نقاط پایانی IPv4 یا IPv6، یا روی سوکتهای دامنهٔ یونیکس (UNIX-domain sockets) پذیرفته شوند. حالت پیشفرض IPv4 و IPv6 است. این برنامه مکمل برنامهٔ smtp-source(1) است.
نکته: این یک برنامهٔ آزمایشی پشتیبانینشده است. هیچ تلاشی برای حفظ سازگاری میان نسخههای متوالی صورت نمیگیرد.
آرگومانها:
- -4
- فقط از IPv4 پشتیبانی میکند. در صورتی که Postfix بدون پشتیبانی از IPv6 ساخته شده باشد، این گزینه هیچ اثری ندارد.
- -6
- فقط از IPv6 پشتیبانی میکند. در صورتی که Postfix بدون پشتیبانی از IPv6 ساخته شده باشد، این گزینه در دسترس نیست.
- -8
- پشتیبانی از 8BITMIME را اعلام نمیکند.
- -a
- پشتیبانی از احراز هویت SASL را اعلام نمیکند.
- -A delay
- پس از پاسخ دادن به DATA، به میزان delay ثانیه صبر کرده و سپس زودتر از موعد با وضعیت پاسخ 550 لغو میکند. هیچ ورودی بیشتری از کلاینت نمیخواند؛ این تلاشی است برای مسدود کردن کلاینت پیش از آنکه «.» را ارسال کند. برای قطع فوری، مقدار تأخیر را صفر تعیین کنید.
- -b soft-bounce-reply
- از soft-bounce-reply برای پاسخهای رد نرم (soft reject) استفاده میکند. پاسخ پیشفرض "450 4.3.0 Error: command failed" است.
- -B hard-bounce-reply
- از hard-bounce-reply برای پاسخهای رد سخت (hard reject) استفاده میکند. پاسخ پیشفرض "500 5.3.0 Error: command failed" است.
- -c
- شمارندههای در حال اجرا را نمایش میدهد که هر زمان یک نشست SMTP پایان یابد، یک دستور QUIT اجرا شود، یا هنگام دریافت «.» بهروزرسانی میشوند.
- -C
- پشتیبانی از XCLIENT را غیرفعال میکند.
- -d dump-template
- هر تراکنش
نامه را
درون یک
فایل
تکپیامی
ذخیره
میکند که
نام آن از
طریق بسط
dump-template توسط strftime(3) و
الحاق یک
عدد
شانزدهشانزدهی
شبهتصادفی
ایجاد
میشود
(مثال: "%Y%m%d%H/%M."
به "2006081203/05.809a62e3"
بسط
مییابد).
اگر الگو
شامل
نویسههای
"/" باشد،
دایرکتوریهای
ناموجود
بهطور
خودکار
ایجاد
میشوند.
قالب
رونوشت
پیام در زیر
شرح داده
شده است.
نکته: این گزینه برای هر تراکنش نامهٔ در حال انجام، یک فایل ثبت را باز نگه میدارد.
- -D dump-template
- تراکنشهای
نامه را به
یک فایل
رونوشت
چندپیامی
الحاق
میکند که
نام آن از
طریق بسط
dump-template توسط strftime(3)
ایجاد
میشود. اگر
الگو حاوی
نویسههای
"/" باشد،
دایرکتوریهای
ناموجود
بهطور
خودکار
ایجاد
میشوند.
قالب
رونوشت
پیام در زیر
شرح داده
شده است.
نکته: این گزینه برای هر تراکنش نامهٔ در حال انجام، یک فایل ثبت را باز نگه میدارد.
- -e
- پشتیبانی از ESMTP را اعلام نمیکند.
- -E
- پشتیبانی از ENHANCEDSTATUSCODES را اعلام نمیکند.
- -f command,command,...
- دستورهای
مشخصشده
را با یک کد
خطای سخت (5xx)
رد میکند.
این گزینه
مستلزم -p
است.
نمونههایی از دستورها عبارتند از CONNECT، HELO، EHLO، LHLO، MAIL، RCPT، VRFY، DATA، .، RSET، NOOP و QUIT. نام دستورها را با فاصله یا کاما جدا کنید، و برای محافظت از فاصلهها در برابر پوسته از نقلقول استفاده نمایید. نام دستورها به حروف بزرگ و کوچک حساس نیستند.
- -F
- پشتیبانی از XFORWARD را غیرفعال میکند.
- -h hostname
- از hostname در پیام خوشآمدگویی SMTP، در پاسخ HELO و در پاسخ EHLO استفاده میکند. نام میزبان پیشفرض "smtp-sink" است.
- -H delay
- اولین عملیات خواندن پس از دریافت DATA را به تاخیر میاندازد (زمان به ثانیه). این گزینه را با یک پیام آزمایشی بزرگ و اندازهٔ پنجرهٔ کوچک TCP (گزینهٔ -T را ببینید) ترکیب کنید تا پیادهسازی write_wait() کلاینت Postfix آزمایش شود.
- -L
- فعالسازی LMTP به جای SMTP.
- -m count (پیشفرض: 256)
- یک حد بالا برای حداکثر تعداد اتصالهای همزمانی که smtp-sink مدیریت خواهد کرد. این کار از اتمام توصیفکنندههای فایل در فرایند جلوگیری میکند. اتصالهای مازاد در پشتهٔ TCP/IP در صف باقی خواهند ماند.
- -M count
- پس از دریافت count پیام خاتمه مییابد.
- -n count
- پس از count نشست خاتمه مییابد.
- -N
- پشتیبانی از DSN را اعلام نمیکند.
- -p
- پشتیبانی از خطلولهسازی دستورات ESMTP (یا command pipelining) را اعلام نمیکند.
- -P
- پیام خوشآمدگویی کارساز را به گونهای تغییر میدهد که گویی از طریق یک سیستم CISCO PIX عبور میکند. مستلزم -e است.
- -q command,command,...
- پس از
دریافت یکی
از
دستورهای
مشخصشده،
ارتباط را
(بدون پاسخ
دادن) قطع
میکند.
نمونههایی از دستورها عبارتند از CONNECT، HELO، EHLO، LHLO، MAIL، RCPT، VRFY، DATA، .، RSET، NOOP و QUIT. نام دستورها را با فاصله یا کاما جدا کنید، و برای محافظت از فاصلهها در برابر پوسته از نقلقول استفاده نمایید. نام دستورها به حروف بزرگ و کوچک حساس نیستند.
- -Q command,command,...
- پس از
دریافت یکی
از
دستورهای
مشخصشده،
یک پاسخ 421
ارسال کرده
و ارتباط را
قطع میکند.
نمونههایی از دستورها عبارتند از CONNECT، HELO، EHLO، LHLO، MAIL، RCPT، VRFY، DATA، .، RSET، NOOP و QUIT. نام دستورها را با فاصله یا کاما جدا کنید، و برای محافظت از فاصلهها در برابر پوسته از نقلقول استفاده نمایید. نام دستورها به حروف بزرگ و کوچک حساس نیستند.
- -r command,command,...
- دستورهای
مشخصشده
را با یک کد
خطای نرم (4xx)
رد میکند.
این گزینه
مستلزم -p
است.
نمونههایی از دستورها عبارتند از CONNECT، HELO، EHLO، LHLO، MAIL، RCPT، VRFY، DATA، .، RSET، NOOP و QUIT. نام دستورها را با فاصله یا کاما جدا کنید، و برای محافظت از فاصلهها در برابر پوسته از نقلقول استفاده نمایید. نام دستورها به حروف بزرگ و کوچک حساس نیستند.
- -R root-directory
- دایرکتوری ریشهٔ فرایند را به مکان مشخصشده تغییر میدهد. این گزینه نیازمند امتیازات مدیر سیستم (super-user) است. همچنین گزینهٔ -u را ببینید.
- -s command,command,...
- دستورهای
مشخصشده
را در syslogd ثبت
میکند.
نمونههایی از دستورها عبارتند از CONNECT، HELO، EHLO، LHLO، MAIL، RCPT، VRFY، DATA، .، RSET، NOOP و QUIT. نام دستورها را با فاصله یا کاما جدا کنید، و برای محافظت از فاصلهها در برابر پوسته از نقلقول استفاده نمایید. نام دستورها به حروف بزرگ و کوچک حساس نیستند.
- -S start-string
- یک رشتهٔ اختیاری که به ابتدای هر پیامی که درون فایل رونوشت نوشته میشود اضافه میگردد (توضیحات قالب فایل رونوشت را در زیر ببینید). دنبالههای گریز زبان C زیر پشتیبانی میشوند: \a (زنگ)، \b (پسبر)، \f (برگهخور)، \n (خط جدید)، \r (بازگشت به ابتدای سطر)، \t (تب افقی)، \v (تب عمودی)، \ddd (حداکثر سه رقم هشتهشتی) و \\ (نویسهٔ بکاسلش).
- -t timeout (پیشفرض: 100)
- محدود کردن زمان دریافت یک دستور یا ارسال یک پاسخ. محدودیت زمانی بر حسب ثانیه مشخص میشود.
- -T windowsize
- اندازهٔ پیشفرض پنجرهٔ TCP را بازنویسی میکند. برای دور زدن پیادهسازیهای معیوب مقیاسپذیری پنجرهٔ TCP، مقداری بزرگتر از 0 و کوچکتر از 65536 تعیین کنید.
- -u username
- پس از باز کردن سوکت شبکه و تغییر اختیاری دایرکتوری ریشهٔ فرایند، به امتیازات کاربر مشخصشده تغییر وضعیت میدهد. این گزینه زمانی که فرایند با امتیازات مدیر سیستم اجرا میشود الزامی است. همچنین گزینهٔ -R را ببینید.
- -v
- مکالمات SMTP را نمایش میدهد.
- -w delay
- پیش از پاسخ دادن به یک دستور DATA، به مدت delay ثانیه صبر میکند.
- -W command:delay[:odds]
- پیش از پاسخ دادن به command، به مدت delay ثانیه صبر میکند. اگر odds نیز مشخص شده باشد (عددی بین 1-99 شامل هر دو)، به اندازهٔ یک ضریب تصادفی از delay صبر میکند. این ضریب تصادفی برابر است با تعداد دفعاتی که برنامه نیاز دارد یک تاس را با بازهٔ شامل 0..99 بیندازد، پیش از آنکه تاس نتیجهای بزرگتر یا مساوی odds تولید کند.
- [inet:][host]:port
- روی رابط شبکهٔ host (پیشفرض: هر رابطی) و پورت TCP با شمارهٔ port گوش فرا میدهد. هر دو مقدار host و port را میتوان به صورت عددی یا نمادین تعیین کرد.
- unix:pathname
- روی سوکت دامنهٔ یونیکس در pathname گوش فرا میدهد.
- backlog
- حداکثر طول صف اتصالهای در انتظار، همانطور که توسط فراخوان سیستمی listen(2) تعریف شده است.
قالب فایل رونوشت (DUMP FILE FORMAT)
هر پیام رونوشتشده شامل دنبالهای از سطرهای متنی است که با نویسهٔ خط جدید خاتمه مییابند. ترتیب اطلاعات به شرح زیر است:
- رشتهٔ اختیاری مشخصشده با گزینهٔ -S.
- سرایندهای تولیدشده توسط smtp-sink همانطور که در زیر مستند شده است.
- سرایند و بدنهٔ پیام همانطور که از کلاینت SMTP دریافت شده است.
- یک سطر خالی.
قالب سرایندهای تولیدشده توسط smtp-sink به شرح زیر است:
- X-Client-Addr: text
- نشانی IP کلاینت بدون کروشههای [] پیرامونی. پیشوند "ipv6:" به ابتدای یک نشانی IPv6 افزوده میشود. این رکورد همواره وجود دارد.
- X-Client-Proto: text
- پروتکل کلاینت: SMTP، ESMTP یا LMTP. این رکورد همواره وجود دارد.
- X-Helo-Args: text
- آرگومانهای آخرین دستور HELO یا EHLO پیش از این تراکنش تحویل نامه. این رکورد تنها در صورتی وجود دارد که کلاینت پیش از دستور DATA، یک دستور قابل شناسایی HELO یا EHLO ارسال کرده باشد.
- X-Mail-Args: text
- آرگومانهای دستور MAIL که این تراکنش تحویل نامه را آغاز کرده است. این رکورد دقیقاً یک بار وجود دارد.
- X-Rcpt-Args: text
- آرگومانهای یک دستور RCPT در این تراکنش تحویل نامه. برای هر دستور RCPT یک رکورد وجود دارد و به ترتیبی هستند که توسط کلاینت ارسال شدهاند.
- Received: text
- یک سرایند پیام برای سازگاری با نرمافزارهای پردازش نامه. این سرایند سهخطی نشاندهندهٔ پایان سرایندهای ارائهشده توسط smtp-sink است، و قالب آن به شرح زیر میباشد:
- from helo ([addr])
- آرگومان دستور HELO یا EHLO و نشانی IP کلاینت. اگر کلاینت HELO یا EHLO ارسال نکرده باشد، به جای آن از نشانی IP کلاینت استفاده میشود.
- by host (smtp-sink) with proto id random;
- نام میزبان مشخصشده با گزینهٔ -h، پروتکل کلاینت (X-Client-Proto در بالا را ببینید)، و بخش شبهتصادفی از نام فایل ذخیره به ازای هر پیام.
- time-stamp
- یک برچسب زمانی همانطور که در RFC 2822 تعریف شده است.
همچنین ببینید (SEE ALSO)
smtp-source(1)، تولیدکنندهٔ پیام SMTP/LMTP
مجوز (LICENSE)
مجوز Secure Mailer باید به همراه این نرمافزار توزیع شود.
نویسندگان (AUTHORS)
Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA