| CANONICAL(5) | File Formats Manual | CANONICAL(5) |
نام (NAME)
canonical - قالب جدول متعارف Postfix
خلاصه دستور (SYNOPSIS)
postmap /etc/postfix/canonical postmap -q "string" /etc/postfix/canonical postmap -q - /etc/postfix/canonical <inputfile
توضیحات (DESCRIPTION)
جدول اختیاری canonical(5) یک نگاشت نشانی را برای نشانیهای محلی و غیرمحلی مشخص میکند. این نگاشت پیش از ذخیره شدن ایمیل در صف، توسط دیمن cleanup(8) استفاده میشود. نگاشت نشانی به صورت بازگشتی است.
به طور معمول، جدول canonical(5) به عنوان یک فایل متنی مشخص میشود که به عنوان ورودی برای دستور postmap(1) عمل میکند تا یک فایل ایندکسشده برای جستجوی سریع ایجاد شود.
برای بازسازی فایل ایندکسشده با نوع پیشفرض پس از تغییر فایل متنی، دستور «postmap /etc/postfix/canonical» را اجرا کنید، یا برای مشخص کردن نوعی صریح، دستور «postmap type:/etc/postfix/canonical» را اجرا نمایید.
نوع پیشفرض فایل ایندکسشده با پارامتر default_database_type پیکربندی میشود. بسته به پلتفرم، این نوع ممکن است یکی از موارد lmdb:، cdb:، hash:، یا dbm: (بدون «:» پایانی) باشد.
هنگامی که جدول از طریق روشهای دیگری مانند NIS، LDAP یا SQL ارائه میشود، همان جستجوهایی انجام میگیرد که برای فایلهای ایندکسشده معمولی صورت میپذیرد. مدیریت چنین پایگاههای دادهای خارج از حیطه Postfix است.
به عنوان جایگزین، جدول میتواند به صورت یک نگاشت عبارت باقاعده ارائه شود که در آن الگوها به صورت عبارات باقاعده داده میشوند، یا جستجوها میتوانند به یک کارساز مبتنی بر TCP هدایت شوند. در آن موارد، جستجوها به روشی کمی متفاوت انجام میشوند که در ادامه در بخشهای «جدولهای عبارات باقاعده» یا «جدولهای مبتنی بر TCP» شرح داده شده است.
به طور پیشفرض، نگاشت canonical(5) هم بر نشانیهای سرآیند پیام (یعنی نشانیهایی که درون پیامها ظاهر میشوند) و هم بر نشانیهای پاکت نامه پیام (برای مثال، نشانیهایی که در دستورات پروتکل SMTP استفاده میشوند) تأثیر میگذارد. این رفتار با پارامتر canonical_classes کنترل میشود.
نکته: در Postfix نسخههای 2.2 و بالاتر، سرآیندهای پیام دریافت شده از کلاینتهای راه دور SMTP تنها در صورتی بازنویسی میشوند که کلاینت با پارامتر local_header_rewrite_clients مطابقت داشته باشد، یا پارامتر پیکربندی remote_header_rewrite_domain مقداری غیرخالی تعیین کرده باشد. برای دستیابی به رفتار قبل از Postfix 2.2، عبارت «local_header_rewrite_clients = static:all» را مشخص کنید.
به طور معمول، از جدول canonical(5) برای جایگزینی نامهای ورود با Firstname.Lastname، یا برای پاکسازی نشانیهای تولیدشده توسط سیستمهای ایمیل قدیمی استفاده میشود.
نگاشت canonical(5) نباید با پشتیبانی از نام مستعار مجازی یا با نامهای مستعار محلی اشتباه گرفته شود. برای تغییر مقصد بدون تغییر سرآیندها، به جای آن از نگاشت virtual(5) یا aliases(5) استفاده کنید.
تبدیل بزرگی/کوچکی حروف (CASE FOLDING)
رشته جستجو پیش از جستجو در پایگاه داده، به حروف کوچک تبدیل میشود. از Postfix 2.3 به بعد، رشته جستجو در انواع پایگاه داده مانند regexp: یا pcre: که فیلدهای جستجوی آنها میتوانند هم با حروف بزرگ و هم با حروف کوچک تطابق یابند، تبدیل به حروف کوچک نمیشود.
قالب جدول (TABLE FORMAT)
قالب ورودی برای دستور postmap(1) به شرح زیر است:
- pattern address
- هنگامی که pattern با یک نشانی ایمیل مطابقت داشته باشد، آن را با address متناظر جایگزین میکند.
- خطوط خالی و توضیحات
- خطوط خالی و خطوطی که فقط حاوی فاصلهاند نادیده گرفته میشوند، همچنین خطوطی که اولین نویسه غیرفاصلهای آنها یک «#» باشد.
- متن چندخطی
- یک خط منطقی با متنی غیر از فاصله خالی آغاز میشود. خطی که با فاصله خالی شروع شود، ادامه خط منطقی قبلی خواهد بود.
ترتیب جستجوی جدول (TABLE SEARCH ORDER)
در جستجوها از فایلهای ایندکسشده مانند DB یا DBM، یا از جدولهای تحت شبکه مانند NIS، LDAP یا SQL، هر پرسوجوی user@domain دنبالهای از الگوهای پرسوجو را به شرح زیر ایجاد میکند.
پیش از امتحان کردن الگوی پرسوجوی بعدی، هر الگوی پرسوجو به هر جدول جستجوی مشخصشده ارسال میشود تا زمانی که یک تطابق پیدا شود.
- user@domain address
- user@domain را با address
جایگزین
میکند. این
فرم
بالاترین
اولویت را
دارد.
این فرم برای پاکسازی نشانیهای تولیدشده توسط سیستمهای ایمیل قدیمی مفید است. همچنین میتواند برای ایجاد نشانیهایی به سبک Firstname.Lastname استفاده شود، اما برای راهحل سادهتر به بخشهای بعدی مراجعه کنید.
- user address
- هنگامی که
site برابر با
$myorigin باشد، یا
در $mydestination
فهرست شده
باشد، یا در
$inet_interfaces یا $proxy_interfaces
فهرست شده
باشد، user@site
را با address
جایگزین
میکند.
این فرم برای جایگزینی نامهای ورود با Firstname.Lastname مفید است.
- @domain address
- سایر
نشانیها
در domain را با
address جایگزین
میکند. این
فرم کمترین
اولویت را
دارد.
نکته: @domain یک نویسه عمومی (wild-card) است. هنگامی که این فرم برای نشانیهای گیرنده اعمال میشود، کارساز SMTP نرمافزار Postfix ایمیلها را برای هر گیرندهای در domain، صرفنظر از اینکه آن گیرنده واقعاً وجود داشته باشد یا خیر، میپذیرد. این موضوع ممکن است سیستم ایمیل شما را به یک منبع بازپخش ناخواسته (backscatter) تبدیل کند: Postfix ابتدا ایمیل را برای گیرندگان ناموجود میپذیرد و سپس سعی میکند آن ایمیل را به عنوان «غیرقابل تحویل» به نشانی فرستنده که اغلب جعلی است بازگرداند.
برای جلوگیری از بروز پدیده backscatter با ایمیلهای دامنه دارای نویسه عمومی، نگاشت wild-card را با نگاشتهای صریح 1:1 جایگزین کنید، یا محدودیت reject_unverified_recipient را برای آن دامنه اضافه نمایید:
smtpd_recipient_restrictions = ... reject_unauth_destination check_recipient_access inline:{example.com=reject_unverified_recipient} unverified_recipient_reject_code = 550در مثال بالا، در صورتی که گیرنده به یک نشانی راه دور بازنویسی شود، ممکن است Postfix با یک کارساز راه دور تماس برقرار کند.
بازنویسی نشانی نتیجه (RESULT ADDRESS REWRITING)
نتیجه جستجو مشمول بازنویسی نشانی میشود:
- هنگامی که نتیجه به فرم @otherdomain باشد، نتیجه تبدیل به همان user در otherdomain میشود.
- هنگامی که «append_at_myorigin=yes» باشد، مقدار «@$myorigin» به نشانیهای بدون «@domain» پیوست میشود.
- هنگامی که «append_dot_mydomain=yes» باشد، مقدار «.$mydomain» به نشانیهای بدون «.domain» پیوست میشود.
پسوند نشانی (ADDRESS EXTENSION)
هنگامی که بخش محلی (localpart) یک نشانی ایمیل شامل جداکننده اختیاری گیرنده باشد (برای مثال، user+foo@domain)، ترتیب جستجو به صورت زیر درمیآید: user+foo@domain، user@domain، user+foo، user، و @domain.
پارامتر propagate_unmatched_extensions کنترل میکند که آیا یک پسوند نشانی تطبیقنیافته (+foo) به نتیجه جستجوی جدول منتقل شود یا خیر.
جدولهای عبارات باقاعده (REGULAR EXPRESSION TABLES)
این بخش نحوه تغییر جستجوهای جدول را هنگامی که جدول در قالب عبارات باقاعده ارائه شده باشد شرح میدهد. برای مشاهده شرح نحو جدول جستجوی عبارت باقاعده، به regexp_table(5) یا pcre_table(5) مراجعه کنید.
هر الگو یک عبارت باقاعده است که بر روی کل نشانیِ مورد جستجو اعمال میشود. بنابراین، نشانیهای ایمیل user@domain به بخشهای تشکیلدهنده user و @domain تفکیک نمیشوند، و همچنین user+foo به user و foo شکسته نمیشود.
الگوها به ترتیبی که در جدول مشخص شده است اعمال میشوند، تا زمانی که الگویی مطابق با رشته جستجو پیدا شود.
نتایج مشابه جستجوها در فایلهای ایندکسشده است، با این ویژگی افزوده که زیررشتههای درون پرانتز در الگو میتوانند به صورت $1، $2 و غیره درونریزی شوند.
جدولهای مبتنی بر TCP (TCP-BASED TABLES)
این بخش نحوه تغییر جستجوهای جدول را هنگامی که جستجوها به یک کارساز مبتنی بر TCP هدایت میشوند شرح میدهد. برای مشاهده شرح پروتکل جستجوی کلاینت/کارساز TCP، به tcp_table(5) مراجعه کنید. این ویژگی تا نسخه 2.4 نرمافزار Postfix (شامل آن نسخه نیز) در دسترس نیست.
هر عملیات جستجو کل نشانی را در یک نوبت استفاده میکند. بنابراین، نشانیهای ایمیل user@domain به بخشهای تشکیلدهنده user و @domain تفکیک نمیشوند، و همچنین user+foo به user و foo شکسته نمیشود.
نتایج مشابه جستجوها در فایلهای ایندکسشده است.
اشکالات (BUGS)
قالب این جدول، قواعد نقلقول (quoting conventions) را پشتیبانی نمیکند.
پارامترهای پیکربندی (CONFIGURATION PARAMETERS)
پارامترهای زیر در main.cf بهویژه مرتبط هستند. متن زیر تنها خلاصهای از پارامترها را ارائه میدهد. برای جزئیات بیشتر شامل مثالها، به postconf(5) مراجعه کنید.
- canonical_classes (envelope_sender, envelope_recipient, header_sender, header_recipient)
- مشخص میکند چه نشانیهایی مشمول نگاشت نشانی canonical_maps هستند.
- canonical_maps (empty)
- جدولهای جستجوی اختیاری نگاشت نشانی برای سرآیندها و پاکتهای پیام.
- recipient_canonical_maps (empty)
- جدولهای جستجوی اختیاری نگاشت نشانی برای نشانیهای گیرنده در پاکت نامه و سرآیند.
- sender_canonical_maps (empty)
- جدولهای جستجوی اختیاری نگاشت نشانی برای نشانیهای فرستنده در پاکت نامه و سرآیند.
- propagate_unmatched_extensions (canonical, virtual)
- مشخص میکند کدام جدولهای جستجوی نشانی، پسوند نشانی را از کلید جستجو به نتیجه جستجو کپی میکنند.
سایر پارامترهای مرتبط:
- inet_interfaces (all)
- نشانیهای رابط شبکه محلی که این سیستم ایمیل روی آنها ایمیل دریافت میکند.
- local_header_rewrite_clients (permit_inet_interfaces)
- سرآیندهای پیام را در ایمیلهای این کلاینتها بازنویسی کرده یا اضافه میکند، نشانیهای ناقص را با نام دامنه در $myorigin یا $mydomain بهروزرسانی کرده، و سرآیندهای گمشده را میافزاید.
- proxy_interfaces (empty)
- نشانیهای رابط شبکه راه دور که این سیستم ایمیل از طریق یک پراکسی یا واحد ترجمه نشانی شبکه (NAT) روی آنها ایمیل دریافت میکند.
- masquerade_classes (envelope_sender, header_sender, header_recipient)
- مشخص میکند چه نشانیهایی مشمول نقابگذاری نشانی (address masquerading) هستند.
- masquerade_domains (empty)
- فهرست اختیاری از دامنههایی که ساختار زیردامنهای آنها در نشانیهای ایمیل حذف خواهد شد.
- masquerade_exceptions (empty)
- فهرست اختیاری از نامهای کاربری که حتی اگر نشانی آنها با $masquerade_domains مطابقت داشته باشد، مشمول نقابگذاری نشانی نمیشوند.
- mydestination ($myhostname, localhost.$mydomain, localhost)
- فهرست دامنههایی که از طریق ترابری تحویل ایمیل $local_transport تحویل داده میشوند.
- myorigin ($myhostname)
- نام دامنهای که به نظر میرسد ایمیلهای ارسالشده به صورت محلی از آن آمدهاند، و ایمیلهای ارسالشده محلی به آن تحویل داده میشوند.
- owner_request_special (yes)
- رفتار ویژه برای مدخلهای owner-listname در فایل aliases(5) را فعال میکند، و زمانی که recipient_delimiter روی «-» تنظیم شده باشد، بخشهای محلی نشانیهای owner-listname و listname-request را تفکیک نمیکند.
- remote_header_rewrite_domain (empty)
- اگر مقدار پارامتر remote_header_rewrite_domain غیرخالی باشد، سرآیندهای پیام را در ایمیلهای کلاینتهای راه دور بازنویسی کرده یا اضافه میکند، نشانیهای ناقص را با دامنه مشخصشده در پارامتر remote_header_rewrite_domain بهروزرسانی کرده، و سرآیندهای گمشده را میافزاید.
همچنین ببینید (SEE ALSO)
cleanup(8), استانداردسازی و قراردادن ایمیل در صف postmap(1), مدیریت جدولهای جستجوی Postfix postconf(5), پارامترهای پیکربندی virtual(5), نامهای مستعار مجازی
فایلهای راهنما (README FILES)
از دستور «postconf readme_directory» یا «postconf html_directory» برای یافتن این اطلاعات استفاده کنید.
DATABASE_README, بررسی کلی جدولهای جستجوی Postfix ADDRESS_REWRITING_README, راهنمای بازنویسی نشانی
مجوز (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