| GENERIC(5) | File Formats Manual | GENERIC(5) |
نام (NAME)
generic - قالب جدول generic در Postfix
خلاصه دستور (SYNOPSIS)
postmap /etc/postfix/generic postmap -q "string" /etc/postfix/generic postmap -q - /etc/postfix/generic <inputfile
توضیحات (DESCRIPTION)
جدول اختیاری generic(5) نگاشت آدرسی را مشخص میکند که هنگام تحویل نامه اعمال میشود. این برعکس نگاشت canonical(5) است که هنگام دریافت نامه اعمال میگردد.
بهطور معمول، جدول generic(5) در سیستمی استفاده میشود که نام دامنهٔ معتبر اینترنتی ندارد و در عوض از چیزی مانند localdomain.local استفاده میکند. سپس جدول generic(5) توسط کلاینت smtp(8) برای تبدیل آدرسهای ایمیل محلی به آدرسهای ایمیل اینترنتی معتبر در زمان ارسال نامه از طریق اینترنت استفاده میشود. بخش «مثالها» را در انتهای این سند مشاهده کنید.
نگاشت generic(5) هم بر آدرسهای سرآیند (header) پیام (یعنی آدرسهایی که درون پیامها ظاهر میشوند) و هم بر آدرسهای پاکت (envelope) پیام (به عنوان مثال، آدرسهایی که در دستورات پروتکل SMTP استفاده میشوند) تأثیر میگذارد.
معمولاً جدول generic(5) به عنوان یک فایل متنی مشخص میشود که به عنوان ورودی به دستور postmap(1) داده میشود تا یک فایل نمایهسازیشده (indexed) برای جستجوی سریع ایجاد کند.
برای بازسازی فایل نمایهسازیشده با نوع پیشفرض پس از تغییر فایل متنی، دستور «postmap /etc/postfix/generic» را اجرا کنید، یا «postmap type:/etc/postfix/generic» را برای مشخص کردن صریح یک نوع خاص اجرا نمایید.
نوع پیشفرض فایل نمایهسازیشده با پارامتر default_database_type پیکربندی میشود. بسته به پلتفرم، این مقدار ممکن است یکی از lmdb:، cdb:، hash: یا dbm: (بدون ':' پایانی) باشد.
هنگامی که جدول از طریق روشهای دیگر مانند NIS، LDAP یا SQL ارائه میشود، همان جستجوها مشابه فایلهای نمایهسازیشده معمولی انجام میگیرد. مدیریت چنین پایگاههای دادهای خارج از حیطهٔ Postfix است.
به عنوان جایگزین، جدول میتواند به عنوان یک نگاشت عبارت منظم (regular-expression) ارائه شود که در آن الگوها به عنوان عبارات منظم داده میشوند، یا جستجوها میتوانند به یک سرور مبتنی بر TCP هدایت شوند. در این موارد، جستجوها به روشی کمی متفاوت انجام میشوند که در ادامه تحت عنوان «جداول عبارت منظم» یا «جداول مبتنی بر TCP» توضیح داده شده است.
یکسانسازی بزرگی و کوچکی حروف (CASE FOLDING)
رشتهٔ جستجو قبل از جستجو در پایگاهداده به حروف کوچک تبدیل میشود. از نسخهٔ Postfix 2.3 به بعد، رشتهٔ جستجو برای انواع پایگاهداده مانند regexp: یا pcre: که فیلدهای جستجوی آنها میتوانند با هر دو حالت حروف بزرگ و کوچک مطابقت داشته باشند، به حروف کوچک تبدیل نمیشود.
قالب جدول (TABLE FORMAT)
قالب ورودی برای دستور postmap(1) به شرح زیر است:
- pattern result
- هنگامی که pattern با یک آدرس ایمیل مطابقت داشته باشد، آن را با result مربوطه جایگزین میکند.
- خطوط خالی و توضیحات
- خطوط خالی و خطوطی که فقط شامل فاصلهاند نادیده گرفته میشوند، همانطور که خطوطی که اولین نویسهٔ غیرفاصلهای آنها `#' است نادیده گرفته میشوند.
- متن چندخطی
- یک خط منطقی با متنی غیر از نویسهٔ فاصله شروع میشود. خطی که با نویسهٔ فاصله شروع شود، ادامهٔ خط منطقی قبلی در نظر گرفته میشود.
ترتیب جستجوی جدول (TABLE SEARCH ORDER)
در جستجوها از فایلهای نمایهسازیشده مانند DB یا DBM، یا از جداول شبکهای مانند NIS، LDAP یا SQL، هر پرسمان user@domain دنبالهای از الگوهای پرسمان را طبق شرح زیر تولید میکند.
هر الگوی پرسمان قبل از امتحان الگوی بعدی به هر جدول جستجوی مشخصشده ارسال میشود، تا زمانی که یک تطابق پیدا شود.
- user@domain address
- جایگزینی user@domain با address. این حالت بالاترین اولویت را دارد.
- user address
- جایگزینی user@site با address زمانی که site برابر با $myorigin باشد، زمانی که site در $mydestination فهرست شده باشد، یا زمانی که در $inet_interfaces یا $proxy_interfaces فهرست شده باشد.
- @domain address
- جایگزینی سایر آدرسها در domain با address. این حالت کمترین اولویت را دارد.
بازنویسی آدرس نتیجه (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) مراجعه کنید. این قابلیت در Postfix 2.5 و بالاتر موجود است.
هر عملیات جستجو یکبار از کل آدرس استفاده میکند. بنابراین، آدرسهای ایمیل user@domain به بخشهای تشکیلدهندهٔ user و @domain شکسته نمیشوند، و همچنین user+foo به user و foo تقسیم نمیگردد.
نتایج همانند جستجوهای فایلهای نمایهسازیشده است.
مثالها (EXAMPLES)
در ادامه یک نگاشت generic با یک فایل نمایهسازیشده نمایش داده شده است. هنگامی که نامه از طریق SMTP به یک میزبان راهدور ارسال میشود، این پیکربندی his@localdomain.local را با آدرس ایمیل ISP او جایگزین میکند، her@localdomain.local را با آدرس ایمیل ISP او جایگزین میکند، و سایر آدرسهای محلی را با حساب ISP او، با پسوند آدرس +local جایگزین مینماید (این مثال فرض میکند که ISP از پسوندهای آدرس با فرمت "+" پشتیبانی میکند).
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
/etc/postfix/generic:
his@localdomain.local hisaccount@hisisp.example
her@localdomain.local heraccount@herisp.example
@localdomain.local hisaccount+local@hisisp.example
هر زمان که
جدول تغییر
کرد، دستور
«postmap /etc/postfix/generic» را
اجرا کنید.
به جای hash،
برخی
سیستمها
از
فایلهای
پایگاهدادهٔ
dbm استفاده
میکنند.
برای اطلاع
از اینکه
سیستم شما
از چه
جداولی
پشتیبانی
میکند، از
دستور «postconf -m»
استفاده
کنید.
گزارش باگها (BUGS)
قالب جدول قراردادهای نقلقول (quoting) را درک نمیکند.
پارامترهای پیکربندی (CONFIGURATION PARAMETERS)
پارامترهای زیر در main.cf بهویژه مرتبط هستند. متن زیر تنها یک خلاصه از پارامترها را ارائه میدهد. برای جزئیات بیشتر شامل مثالها به postconf(5) مراجعه کنید.
- smtp_generic_maps (empty)
- جداول جستجوی اختیاری که بازنویسی آدرس را در کلاینت Postfix SMTP انجام میدهند، معمولاً برای تبدیل یک آدرس معتبر محلی به یک آدرس معتبر جهانی هنگام ارسال نامه از طریق اینترنت.
- propagate_unmatched_extensions (canonical, virtual)
- مشخص میکند کدام جداول جستجوی آدرس، پسوند آدرس را از کلید جستجو به نتیجهٔ جستجو کپی میکنند.
سایر پارامترهای مهم:
- inet_interfaces (all)
- آدرسهای رابط شبکهٔ محلی که این سیستم پستی روی آنها نامه دریافت میکند.
- proxy_interfaces (empty)
- آدرسهای رابط شبکهٔ راهدور که این سیستم پستی از طریق یک پروکسی یا واحد ترجمهٔ آدرس شبکه (NAT) روی آنها نامه دریافت میکند.
- mydestination ($myhostname, localhost.$mydomain, localhost)
- فهرست دامنههایی که از طریق انتقال تحویل نامهٔ $local_transport تحویل داده میشوند.
- myorigin ($myhostname)
- نام دامنهای که به نظر میرسد نامههای ارسالشدهٔ محلی از آنجا میآیند، و نامههای محلی ارسالشده به آن تحویل داده میشوند.
- owner_request_special (yes)
- فعالسازی رفتار ویژه برای مدخلهای owner-listname در فایل aliases(5)، و عدم تفکیک بخشهای محلی آدرس owner-listname و listname-request هنگامی که recipient_delimiter روی "-" تنظیم شده باشد.
همچنین ببینید (SEE ALSO)
postmap(1)، مدیر جدول جستجوی Postfix postconf(5)، پارامترهای پیکربندی smtp(8)، کلاینت Postfix SMTP
فایلهای راهنما (README FILES)
برای یافتن این اطلاعات از «postconf readme_directory» یا «postconf html_directory» استفاده کنید.
ADDRESS_REWRITING_README، راهنمای بازنویسی آدرس DATABASE_README، نمای کلی جدول جستجوی Postfix STANDARD_CONFIGURATION_README، مثالهای پیکربندی
مجوز (LICENSE)
مجوز Secure Mailer باید به همراه این نرمافزار توزیع شود.
تاریخچه (HISTORY)
قابلیت genericstable در MTA مربوط به Sendmail وجود دارد.
این قابلیت در Postfix نسخهٔ 2.2 و بالاتر در دسترس است.
نویسندگان (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