VIRTUAL(5) File Formats Manual VIRTUAL(5)

virtual - قالب جدول نام مستعار مجازی Postfix

?Bpostmap /etc/postfix/virtual?R
?Bpostmap -q "?Istring?B" /etc/postfix/virtual?R
?Bpostmap -q - /etc/postfix/virtual <?Iinputfile?R


جدول نام مستعار اختیاری ?Bvirtual?R(5) (virtual_alias_maps) برای تمام گیرندگان اعمال می‌شود: محلی ?Blocal?R(8)، مجازی و از راه دور. این ویژگی در دیمن ?Bcleanup?R(8) پست‌فیکس پیش از قرار گرفتن ایمیل در صف پیاده‌سازی شده است. این جدول‌ها اغلب با نشانی ایمیل کامل (شامل دامنه) پرس‌وجو می‌شوند.

این عملکرد بر خلاف جدول ?Baliases?R(5) (alias_maps) است که تنها برای گیرندگان ?Blocal?R(8) اعمال می‌شود. آن جدول تنها با بخش محلی نشانی ایمیل (بدون دامنه) جستجو می‌شود.

نام مستعار مجازی بازگشتی است؛ برای پایان دادن به بازگشت برای یک نشانی خاص، آن نشانی را به خودش نگاشت کنید.

کاربردهای اصلی نام‌گذاری مستعار مجازی عبارتند از:

  • تغییر مسیر ایمیل برای یک نشانی به یک یا چند نشانی دیگر.
  • پیاده‌سازی دامنه‌های نام مستعار مجازی که در آن‌ها تمام نشانی‌ها به نشانی‌هایی در دامنه‌های دیگر نگاشت می‌شوند.

    دامنه‌های نام مستعار مجازی نباید با دامنه‌های صندوق پستی مجازی که با عامل تحویل ایمیل ?Bvirtual?R(8) پست‌فیکس پیاده‌سازی می‌شوند اشتباه گرفته شوند. در دامنه‌های صندوق پستی مجازی، هر نشانی گیرنده می‌تواند صندوق پستی اختصاصی خود را داشته باشد.

نام‌گذاری مستعار مجازی تنها روی نشانی‌های پاکت‌نامه (envelope) گیرنده اعمال می‌شود و بر هدرهای پیام تأثیری نمی‌گذارد. برای بازنویسی عمومی نشانی‌های هدر و پاکت‌نامه، از نگاشت ?Bcanonical?R(5) استفاده کنید.

به طور معمول، جدول نام مستعار ?Bvirtual?R(5) به عنوان یک فایل متنی مشخص می‌شود که به عنوان ورودی دستور ?Bpostmap?R(1) برای ایجاد یک فایل نمایه‌سازی‌شده جهت جستجوی سریع عمل می‌کند.

دستور «?Bpostmap /etc/postfix/virtual?R» را برای بازسازی فایل نمایه‌سازی‌شده از نوع پیش‌فرض پس از تغییر فایل متنی اجرا کنید، یا «?Bpostmap ?Itype?B:/etc/postfix/virtual?R» را برای مشخص کردن صریح یک نوع اجرا نمایید.

نوع پیش‌فرض فایل نمایه‌سازی‌شده با پارامتر default_database_type پیکربندی می‌شود. بسته به پلتفرم، این نوع ممکن است یکی از موارد lmdb:، cdb:، hash: یا dbm: (بدون ':' پایانی) باشد.

هنگامی که جدول از روش‌های دیگر مانند NIS، LDAP یا SQL ارائه می‌شود، همان جستجوهایی که برای فایل‌های نمایه‌سازی‌شده معمولی انجام می‌شود، صورت می‌گیرد. مدیریت چنین پایگاه‌های داده‌ای خارج از محدوده Postfix است.

همچنین جدول می‌تواند به صورت یک نگاشت عبارت منظم ارائه شود که الگوها در آن به عنوان عبارات منظم داده می‌شوند، یا جستجوها می‌توانند به یک سرور مبتنی بر TCP هدایت شوند. در این موارد، جستجوها به روشی اندکی متفاوت انجام می‌شوند که در ادامه در بخش‌های «جدول‌های عبارت منظم» یا «جدول‌های مبتنی بر TCP» شرح داده شده است.

رشته جستجو قبل از جستجو در پایگاه‌داده به حروف کوچک تبدیل می‌شود. از نسخه 2.3 پست‌فیکس به بعد، رشته جستجو در انواع پایگاه‌داده مانند regexp: یا pcre: که فیلدهای جستجوی آن‌ها می‌توانند هم با حروف بزرگ و هم با حروف کوچک مطابقت داشته باشند، تبدیل به حروف کوچک نمی‌شود.

قالب ورودی برای دستور ?Bpostmap?R(1) به شرح زیر است:

?Ipattern address, address, ...?R
هنگامی که ?Ipattern?R با یک نشانی ایمیل مطابقت داشته باشد، آن را با ?Iaddress?R متناظر جایگزین می‌کند.
خطوط خالی و توضیحات
خطوط خالی و خطوطی که فقط حاوی فاصله‌اند نادیده گرفته می‌شوند، همان‌طور که خطوطی که اولین نویسه غیرفاصله‌ای آن‌ها '#' است نادیده گرفته می‌شوند.
متن چندخطی
یک خط منطقی با متن غیرفاصله‌ای آغاز می‌شود. خطی که با فاصله آغاز شود، دنباله خط منطقی پیشین است.

در جستجوها از فایل‌های نمایه‌سازی‌شده مانند DB یا DBM، یا از جدول‌های تحت شبکه مانند NIS، LDAP یا SQL، هر پرس‌وجوی ?Iuser?R@?Idomain?R توالی الگوهای پرس‌وجو را طبق شرح زیر تولید می‌کند.

هر الگوی پرس‌وجو به هر جدول جستجوی مشخص‌شده ارسال می‌شود تا زمانی که یک تطابق پیدا شود.

?Iuser?R@?Idomain address, address, ...?R
تغییر مسیر ایمیل برای ?Iuser?R@?Idomain?R به ?Iaddress?R. این فرم بالاترین اولویت را دارد.
?Iuser address, address, ...?R
تغییر مسیر ایمیل برای ?Iuser?R@?Isite?R به ?Iaddress?R زمانی که ?Isite?R برابر با $?Bmyorigin?R باشد، یا در $?Bmydestination?R فهرست شده باشد، یا در $?Binet_interfaces?R یا $?Bproxy_interfaces?R ذکر شده باشد.

این عملکرد با عملکرد پایگاه‌داده محلی ?Ialiases?R(5) هم‌پوشانی دارد. تفاوت در این است که نگاشت ?Bvirtual?R(5) می‌تواند روی نشانی‌های غیرمحلی اعمال شود.

@?Idomain address, address, ...?R
تغییر مسیر ایمیل برای سایر کاربران در ?Idomain?R به ?Iaddress?R. این فرم پایین‌ترین اولویت را دارد.

نکته: @?Idomain?R یک کاراکتر عام (wildcard) است. با این فرم، سرور SMTP پست‌فیکس ایمیل را برای هر گیرنده‌ای در ?Idomain?R می‌پذیرد، بدون توجه به اینکه آن گیرنده وجود دارد یا خیر. این کار ممکن است سیستم ایمیل شما را به یک منبع پس‌پراکندگی (backscatter) تبدیل کند: ابتدا پست‌فیکس ایمیل برای گیرندگان ناموجود را می‌پذیرد و سپس سعی می‌کند آن ایمیل را به عنوان «غیرقابل تحویل» به نشانی فرستنده که اغلب جعلی است بازگرداند.

برای جلوگیری از backscatter در ایمیل‌های دامنه عام، نگاشت عام را با نگاشت‌های صریح یک‌به‌یک جایگزین کنید، یا محدودیت reject_unverified_recipient را برای آن دامنه اضافه کنید:

smtpd_recipient_restrictions =
    ...
    reject_unauth_destination
    check_recipient_access
        inline:{example.com=reject_unverified_recipient}
unverified_recipient_reject_code = 550

در مثال بالا، در صورتی که گیرنده به یک نشانی راه دور نگاشت شده باشد، پست‌فیکس ممکن است با یک سرور راه دور تماس بگیرد.

نتیجه جستجو مشمول بازنویسی نشانی می‌شود:

  • هنگامی که نتیجه به فرم @?Iotherdomain?R باشد، نتیجه همان ?Iuser?R در ?Iotherdomain?R خواهد شد. این مورد تنها برای اولین نشانی در یک نتیجه جستجوی چندنشانی کار می‌کند.
  • هنگامی که «?Bappend_at_myorigin=yes?R» باشد، عبارت «?B@?R» به نشانی‌های فاقد "@domain" اضافه می‌شود.
  • هنگامی که «?Bappend_dot_mydomain=yes?R» باشد، عبارت «?B.?R» به نشانی‌های فاقد ".domain" اضافه می‌شود.

هنگامی که بخش محلی نشانی ایمیل حاوی جداکننده اختیاری گیرنده باشد (مانند ?Iuser+foo?R@?Idomain?R)، ترتیب جستجو به این صورت درمی‌آید: ?Iuser+foo?R@?Idomain?R، ?Iuser?R@?Idomain?R، ?Iuser+foo?R، ?Iuser?R، و @?Idomain?R.

پارامتر ?Bpropagate_unmatched_extensions?R تعیین می‌کند که آیا پسوند نشانی مطابقت‌نیافته (?I+foo?R) به نتیجه جستجوی جدول منتقل شود یا خیر.

علاوه بر نام‌های مستعار مجازی، جدول نام مستعار مجازی می‌تواند برای پیاده‌سازی دامنه‌های نام مستعار مجازی نیز به کار رود. در یک دامنه نام مستعار مجازی، تمامی نشانی‌های گیرندگان به نشانی‌هایی در دامنه‌های دیگر نگاشت می‌شوند.

دامنه‌های نام مستعار مجازی نباید با دامنه‌های صندوق پستی مجازی که با عامل تحویل ایمیل ?Bvirtual?R(8) پست‌فیکس پیاده‌سازی می‌شوند اشتباه گرفته شوند. در دامنه‌های صندوق پستی مجازی، هر نشانی گیرنده می‌تواند صندوق پستی خودش را داشته باشد.

در یک دامنه نام مستعار مجازی، دامنه مجازی فضای نام کاربری مخصوص به خود را دارد. نام‌های کاربری محلی (غیرمجازی) در یک دامنه نام مستعار مجازی قابل مشاهده نیستند. به ویژه، جدول ?Baliases?R(5) محلی و فهرست‌های پستی محلی به صورت ?Ilocalname@virtual-alias.domain?R در دسترس نخواهند بود.

پیکربندی پشتیبانی از یک دامنه نام مستعار مجازی به این صورت است:

/etc/postfix/main.cf:
    virtual_alias_maps = hash:/etc/postfix/virtual

نکته: برخی سیستم‌ها به جای ?Bhash?R از پایگاه‌های داده ?Bdbm?R استفاده می‌کنند. برای مشاهده انواع پایگاه داده موجود، خروجی دستور «?Bpostconf -m?R» را ببینید.

/etc/postfix/virtual:
    ?Ivirtual-alias.domain    anything?R (محتوای سمت راست اهمیتی ندارد)
    ?Ipostmaster@virtual-alias.domain postmaster?R
    ?Iuser1@virtual-alias.domain      address1?R
    ?Iuser2@virtual-alias.domain      address2, address3?R

مدخل ?Ivirtual-alias.domain anything?R برای یک دامنه نام مستعار مجازی الزامی است. ?Bبدون این مدخل، ایمیل با خطای "relay access denied" رد می‌شود، یا با خطای "mail loops back to myself" برگشت می‌خورد.?R

نام‌های دامنه نام مستعار مجازی را در پارامترهای پیکربندی ?Bmydestination?R یا ?Brelay_domains?R در فایل ?Bmain.cf?R مشخص نکنید.

در یک دامنه نام مستعار مجازی، سرور SMTP پست‌فیکس ایمیل‌ها را برای ?Iknown-user@virtual-alias.domain?R می‌پذیرد و ایمیل‌ها را برای ?Iunknown-user?R@?Ivirtual-alias.domain?R به عنوان غیرقابل تحویل رد می‌کند.

به جای مشخص کردن نام دامنه نام مستعار مجازی از طریق جدول ?Bvirtual_alias_maps?R، می‌توانید آن را از طریق پارامتر پیکربندی ?Bmain.cf virtual_alias_domains?R نیز مشخص کنید. این پارامتر از همان ساختار پارامتر پیکربندی ?Bmain.cf mydestination?R استفاده می‌کند.

این بخش نحوه تغییر جستجوهای جدول را هنگامی که جدول به شکل عبارات منظم ارائه می‌شود شرح می‌دهد. برای توضیحات ساختار جدول جستجوی عبارت منظم، به ?Bregexp_table?R(5) یا ?Bpcre_table?R(5) مراجعه کنید.

هر الگو یک عبارت منظم است که روی کل نشانی مورد جستجو اعمال می‌شود. بنابراین، نشانی‌های ایمیل ?Iuser@domain?R به بخش‌های سازنده ?Iuser?R و ?I@domain?R شکسته نمی‌شوند، و همچنین ?Iuser+foo?R به ?Iuser?R و ?Ifoo?R تجزیه نمی‌گردد.

الگوها به ترتیبی که در جدول مشخص شده‌اند اعمال می‌شوند تا الگویی پیدا شود که با رشته جستجو مطابقت داشته باشد.

نتایج همانند نتایج جستجوهای فایل نمایه‌سازی‌شده هستند، با این ویژگی افزوده که زیررشته‌های پرانتزبندی‌شده از الگو می‌توانند به عنوان ?B?R، ?B?R و غیره جای‌گذاری شوند.

این بخش نحوه تغییر جستجوهای جدول را زمانی که جستجوها به یک سرور مبتنی بر TCP هدایت می‌شوند شرح می‌دهد. برای توضیحات پروتکل جستجوی کارخواه/کارساز TCP، به ?Btcp_table?R(5) مراجعه کنید. این قابلیت در پست‌فیکس 2.5 و بالاتر در دسترس است.

هر عملیات جستجو کل نشانی را یک‌بار استفاده می‌کند. بنابراین، نشانی‌های ایمیل ?Iuser@domain?R به بخش‌های تشکیل‌دهنده ?Iuser?R و ?I@domain?R شکسته نمی‌شوند، و ?Iuser+foo?R نیز به ?Iuser?R و ?Ifoo?R تجزیه نمی‌شود.

نتایج مانند جستجوهای فایل‌های نمایه‌سازی‌شده است.


قالب جدول قراردادهای نقل‌قول (quoting conventions) را درک نمی‌کند.

پارامترهای زیر در ?Bmain.cf?R ارتباط ویژه‌ای با این موضوع دارند. برای جزئیات ساختار و مقادیر پیش‌فرض، فایل ?Bmain.cf?R در پست‌فیکس را ببینید. پس از تغییر پیکربندی، از دستور «?Bpostfix reload?R» استفاده کنید.

?Bvirtual_alias_maps ()?R
جدول‌های جستجوی اختیاری که اغلب با نشانی ایمیل کامل (شامل دامنه) جستجو می‌شوند و برای تمام گیرندگان اعمال می‌شوند: ?Blocal?R(8)، مجازی و راه دور؛ این عملکرد بر خلاف alias_maps است که تنها با بخش محلی نشانی ایمیل (بدون دامنه) جستجو می‌شوند و تنها برای گیرندگان ?Blocal?R(8) اعمال می‌گردند.
?Bvirtual_alias_domains ()?R
پست‌فیکس مقصد نهایی برای فهرست مشخص‌شده دامنه‌های نام مستعار مجازی است، یعنی دامنه‌هایی که تمام نشانی‌های آن‌ها به نشانی‌هایی در دامنه‌های محلی یا راه دور دیگر نگاشت شده‌اند.
?Bpropagate_unmatched_extensions (canonical, virtual)?R
مشخص می‌کند کدام جدول‌های جستجوی نشانی، پسوند نشانی را از کلید جستجو به نتیجه جستجو کپی کنند.

سایر پارامترهای مهم:

?Binet_interfaces (all)?R
نشانی‌های رابط شبکه محلی که این سیستم ایمیل روی آن‌ها ایمیل دریافت می‌کند.
?Bmydestination (, localhost., localhost)?R
فهرست دامنه‌هایی که از طریق انتقال تحویل ایمیل تحویل داده می‌شوند.
?Bmyorigin ()?R
نام دامنه‌ای که ایمیل‌های ارسال‌شده به صورت محلی از آن به نظر می‌رسند، و ایمیل‌های ارسال‌شده به صورت محلی به آن تحویل داده می‌شوند.
?Bowner_request_special (yes)?R
فعال‌سازی رفتار ویژه برای مدخل‌های owner-?Ilistname?R در فایل ?Baliases?R(5)، و تفکیک نکردن بخش‌های محلی نشانی owner-?Ilistname?R و ?Ilistname?R-request زمانی که recipient_delimiter روی "-" تنظیم شده است.
?Bproxy_interfaces (empty)?R
نشانی‌های رابط شبکه راه دور که این سیستم ایمیل از طریق یک پروکسی یا واحد ترجمه نشانی شبکه (NAT) روی آن‌ها ایمیل دریافت می‌کند.

cleanup(8), استانداردسازی و قراردادن ایمیل در صف
postmap(1), مدیریت جدول‌های جستجوی پست‌فیکس
postconf(5), پارامترهای پیکربندی
canonical(5), نگاشت نشانی استاندارد

از دستور «?Bpostconf readme_directory?R» یا «?Bpostconf html_directory?R» برای پیدا کردن این اطلاعات استفاده کنید.

ADDRESS_REWRITING_README, راهنمای بازنویسی نشانی
DATABASE_README, بررسی کلی جدول‌های جستجوی پست‌فیکس
VIRTUAL_README, راهنمای میزبانی دامنه

مجوز نرم‌افزار Secure Mailer باید همراه با این نرم‌افزار توزیع شود.

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