| MONGODB_TABLE(5) | File Formats Manual | MONGODB_TABLE(5) |
نام (NAME)
mongodb_table - پیکربندی کلاینت MongoDB در Postfix
خلاصه دستور (SYNOPSIS)
postmap -q "string" mongodb:/etc/postfix/filename postmap -q - mongodb:/etc/postfix/filename <inputfile
توضیحات (DESCRIPTION)
سیستم ایمیل Postfix از جدولهای اختیاری برای بازنویسی نشانی یا مسیریابی ایمیل استفاده میکند. این جدولها معمولاً در قالبهای lmdb:، cdb:، hash: یا dbm: هستند.
بهعنوان روش جایگزین، جدولهای جستجو میتوانند بهصورت پایگاههای داده MongoDB مشخص شوند. برای اطلاع از اینکه سیستم Postfix شما از چه نوع جدولهای جستجویی پشتیبانی میکند، از دستور "postconf -m" استفاده کنید.
بهمنظور استفاده از جستجوهای MongoDB، یک منبع MongoDB را بهصورت جدول جستجو در main.cf تعریف کنید، برای نمونه:
alias_maps = mongodb:/etc/postfix/mongodb-aliases.cf
در این مثال، فایل /etc/postfix/mongodb-aliases.cf همان قالبی را دارد که فایل main.cf در Postfix داراست، و میتواند پارامترهای شرحدادهشده در زیر را مشخص کند. همچنین امکان قرار دادن پیکربندی در main.cf وجود دارد؛ بخش "پارامترهای منسوخ MAIN.CF" در زیر را ببینید.
اکیداً توصیه میشود از proxy:mongodb استفاده شود تا تعداد اتصالات پایگاه داده کاهش یابد. برای نمونه:
alias_maps = proxy:mongodb:/etc/postfix/mongodb-aliases.cf
نکته: هنگام استفاده از proxy:mongodb:/file، فایل باید توسط کاربر بدون امتیاز postfix (که با پارامتر پیکربندی mail_owner در Postfix مشخص میشود) قابل خواندن باشد.
پارامترهای MONGODB (MONGODB PARAMETERS)
- uri
- شناسه
یکنواخت
منبع (URI) سرور
یا کلاستر mongo
که Postfix تلاش
میکند به
آن متصل شده
و پرسوجو
را انجام
دهد. لطفاً
ببینید:
https://www.mongodb.com/docs/manual/reference/connection-string
نمونه:
uri = mongodb+srv://user:pass@loclhost:27017/mail
- dbname
- نام پایگاه
داده برای
خواندن
اطلاعات از
آن. نمونه:
dbname = mail
- collection
- نام مجموعه
(جدول) برای
خواندن
اطلاعات از
آن. نمونه:
collection = mailbox
- query_filter
- الگوی
پرسوجوی MongoDB
مورد
استفاده
برای جستجو
در پایگاه
داده، که در
آن %s
جایگزینی
برای نشانی
ایمیلی است
که Postfix تلاش
میکند آن
را حلوفصل
کند. لطفاً
ببینید:
https://www.mongodb.com/docs/manual/tutorial/query-documents
نمونه:
query_filter = {"$or": [{"username": "%s"}, {"alias.address": "%s"}], "active": 1}این پارامتر از بسطهای '%' زیر پشتیبانی میکند:
- %%
- این مورد با یک نویسه '%' واقعی جایگزین میشود.
- %s
- این مورد با کلید ورودی جایگزین میشود. %s باید درون علامت نقلقول قرار گیرد، زیرا تمام پرسوجوهای Postfix رشتههایی شامل (بخشهایی از) یک دامنه یا نشانی ایمیل هستند. Postfix هیچ پرسوجوی عددی انجام نمیدهد.
- %u
- هنگامی که کلید ورودی نشانیای به شکل user@domain باشد، %u با بخش محلی نشانی جایگزین میشود. در غیر این صورت، %u با کل رشته جستجو جایگزین میشود.
- %d
- هنگامی که کلید ورودی نشانیای به شکل user@domain باشد، %d با بخش دامنه نشانی جایگزین میشود.
- %[1-9]
- الگوهای %1، %2، ... %9 با بااهمیتترین مؤلفه متناظر از دامنه کلید ورودی جایگزین میشوند. اگر کلید ورودی user@mail.example.com باشد، آنگاه %1 برابر com، %2 برابر example و %3 برابر mail خواهد بود.
- در جایگزینیهای بالا، نویسهها همانطور که در RFC 4627 الزامی شده است، نقلقولگذاری خواهند شد. برای نمونه، هر نویسه نقلقول جفتی یا بکاسلش با یک نویسه بکاسلش اسکیپ میشود.
- projection
- پروجکشنهای پیشرفته پرسوجوی MongoDB. لطفاً ببینید: https://www.mongodb.com/docs/manual/tutorial/project-fields-from-query-results
- اگر projection غیرخالی باشد، آنگاه result_attribute باید خالی باشد.
- این پیادهسازی فقط میتواند اطلاعات را از فیلدهای نتیجه که دارای نوع string (UTF8)، integer (int32، int64) و array هستند استخراج کند. سایر فیلدهای نتیجه با یک هشدار نادیده گرفته خواهند شد. لطفاً ببینید: https://mongoc.org/libbson/current/bson_type_t.html
- همانند result_attribute، فیلد سطح بالای _id (از نوع OID) بهطور خودکار از نتایج پروجکشن حذف میشود.
- result_attribute
- فهرستی جداشده با کاما یا فاصله از نام فیلدهایی که باید در یک نتیجه جستجو بازگردانده شوند.
- اگر result_attribute غیرخالی باشد، آنگاه projection باید خالی باشد.
- همانند projection، فیلد سطح بالای _id (از نوع OID) بهطور خودکار از نتایج جستجو حذف میشود.
- result_format (پیشفرض: %s)
- الگوی فرمت اعمالشده روی نتیجه حاصل از projection یا result_attribute. بیشترین کاربرد آن برای الحاق متن به انتها (یا ابتدا) نتیجه است. این پارامتر از بسطهای '%' زیر پشتیبانی میکند:
- %%
- این مورد با یک نویسه '%' واقعی جایگزین میشود.
- %s
- این مورد با مقدار مشخصه نتیجه جایگزین میشود. هنگامی که نتیجه خالی باشد، نادیده گرفته میشود.
- %u
- هنگامی که مقدار مشخصه نتیجه نشانیای به شکل user@domain باشد، %u با بخش محلی نشانی جایگزین میشود. هنگامی که نتیجه بخش محلی خالی داشته باشد، نادیده گرفته میشود.
- %d
- هنگامی که مقدار مشخصه نتیجه نشانیای به شکل user@domain باشد، %d با بخش دامنه مقدار مشخصه جایگزین میشود. هنگامی که نتیجه بدون مشخص بودن دامنه (unqualified) باشد، نادیده گرفته میشود.
- %[SUD1-9]
- بسطهای با حروف بزرگ و ارقام دهدهی، بخشهایی از کلید ورودی را بهجای نتیجه جایگذاری میکنند. رفتار آنها مشابه موارد شرحدادهشده برای query_filter است، و در واقع از آنجا که کلید ورودی از قبل مشخص است، جستجوهایی که کلید آنها شامل تمام اطلاعات تعیینشده در الگوی نتیجه نباشد متوقف شده و هیچ نتیجهای برنمیگردانند.
- برای
نمونه،
استفاده از
"result_format = smtp:[%s]"
امکان
استفاده از
مشخصه mailHost را
بهعنوان
اساس یک
جدول transport(5)
فراهم
میکند. پس
از اعمال
فرمت
نتیجه،
مقادیر
چندگانه
بهصورت
رشتههایی
جداشده با
کاما به هم
متصل
میشوند.
پارامتر expansion_limit
که در ادامه
توضیح داده
شده است،
امکان
محدود کردن
تعداد
مقادیر در
نتیجه را
فراهم
میکند، که
بهویژه
برای
نگاشتهایی
که باید یک
مقدار واحد
برگردانند
مفید است.
مقدار پیشفرض %s مشخص میکند که هر مقدار مشخصه باید همانطور که هست استفاده شود.
نکته: در اطراف فرمت نتیجه علامت نقلقول قرار ندهید! نتیجه یک رشته JSON نیست.
- domain (پیشفرض: بدون فهرست دامنه)
- این
پارامتر
فهرستی از
نامهای
دامنه،
مسیرهای
فایلها،
یا
پایگاههای
داده "type:table"
است. هنگام
تعیین، فقط
کلیدهای
جستجوی
کاملاً
مشخصشده (fully
qualified) با یک بخش
محلی
*غیرخالی* و
یک دامنه
منطبق،
واجد شرایط
جستجو
هستند:
جستجوهای
'user'،
جستجوهای
صرفاً
دامنه و
جستجوهای
"@domain" انجام
نمیشوند.
این امر
میتواند
بار
پرسوجو
روی پایگاه
داده
پشتیبان را
بهطور
چشمگیری
کاهش دهد.
نمونه:
domain = postfix.org, hash:/etc/postfix/searchdomains
- expansion_limit (پیشفرض: 0)
- محدودیتی برای تعداد کل عناصر نتیجه که (بهصورت یک فهرست جداشده با کاما) توسط یک جستجو در نگاشت بازگردانده میشوند. مقدار صفر این محدودیت را غیرفعال میکند. در صورت فراتر رفتن از حد مجاز، جستجوها با یک خطای موقت با شکست مواجه میشوند. تنظیم این حد روی 1 تضمین میکند که جستجوها چندین مقدار بازنمیگردانند.
پارامترهای منسوخ MAIN.CF (OBSOLETE MAIN.CF PARAMETERS)
پارامترهای MongoDB را میتوان در main.cf نیز تعریف کرد. بهعنوان منبع MongoDB نامی را مشخص کنید که با اسلش یا نقطه آغاز نشود. سپس پارامترهای MongoDB بهصورت نامی که در تعریف منبع به آن دادهاید، یک زیرخط (_) و نام پارامتر در دسترس خواهند بود. برای نمونه، اگر یک نگاشت بهصورت "mongodb:mongodb_source" مشخص شده باشد، پارامتر "uri" در main.cf بهصورت "mongodb_source_uri" تعریف خواهد شد.
نکته: با این روش، گذرواژهها در main.cf نوشته میشوند که معمولاً برای همه کاربران قابل خواندن است، و کاراکتر '$' در مقدار یک پارامتر mongodb باید بهصورت '$$' نوشته شود.
همچنین ببینید (SEE ALSO)
postmap(1)، نگهداری جدول جستجوی Postfix postconf(5)، پارامترهای پیکربندی
فایلهای راهنما (README FILES)
از "postconf readme_directory" یا "postconf html_directory" برای یافتن مکان این اطلاعات استفاده کنید.
DATABASE_README، نمای کلی جدول جستجوی Postfix MONGODB_README، راهنمای کلاینت MONGODB در Postfix
مجوز (LICENSE)
مجوز Secure Mailer باید همراه با این نرمافزار توزیع شود.
تاریخچه (HISTORY)
پشتیبانی از MongoDB در نسخه 3.9 نرمافزار Postfix معرفی شد.
نویسندگان (AUTHORS)
Hamid Maadani (hamid@dexo.tech) Dextrous Technologies, LLC ویرایش توسط: Wietse Venema porcupine.org بر پایه کار قبلی توسط: Stephan Ferraro Aionda GmbH