افزونه Postfix pgsql به شما امکان می دهد Postfix را به پایگاه داده PostgreSQL متصل کنید. این پیاده سازی استفاده از چندین پایگاه داده pgsql را امکان پذیر می کند: در صورت تمایل می توانید از یک پایگاه داده برای جدول مجازی، یک پایگاه دیگر برای جدول دسترسی و پایگاه دیگری برای جدول مستعار استفاده کنید. شما می توانید چندین سرور را برای یک پایگاه داده مشخص کنید، به طوری که Postfix بتواند در صورت خراب شدن یکی از سرورهای پایگاه داده، به یک سرور پایگاه داده خوب سوئیچ کند.
سرورهای ارسال ایمیل که لود بالایی در ارسال ودریافت ایمیل دارند زمانی که از نقشه های pgsql استفاده میکنند و در نتیجه تعداد زیادی کلاینت pgsql همزمان تولید می کنند و این باعث کم شدن کارایی پایگاه داده میشود. بنابراین سرور(های) pgsql باید با در نظر گرفتن این واقعیت طراحی و پیکره بندی شوند.
البته راه جای گزین استفاده از proxymap است. با استفاده از سرویس Postfix proxymap می توانید تعداد کلاینت های همزمان pgsql را کاهش دهید.
اگر می خواهید از این دو افزونه استفاده کنید میبایست آنها را زمان کامپایل پست فیکس فعال کنید یا اینکه در سیستمهای عاملی مثل Ubuntu ماژول معادل را نصب کنید. در ادامه ما فرض میکنیم که این ماژولها را نصب کردهاید.
پیکره بندی جدول جستجوی در پایگاه داده postgresql
هنگامی که Postfix با پشتیبانی pgsql و proxymap نصب شده باشد، میتوانید یک نوع نقشه را در main.cf به این صورت مشخص کنید:
/etc/postfix/main.cf:
alias_maps = proxy:pgsql:/etc/postfix/pgsql-aliases.cf
فایل /etc/postfix/pgsql-aliases.cf اطلاعات زیادی را مشخص می کند که به postfix می گوید چگونه به پایگاه داده pgsql ارجاع دهد. برای توضیحات کامل، صفحه راهنمای pgsql_table را ببینید. در این تنظیمها ما از proxymap استفاده کردهایم تا کارایی بالایی داشته باشد.
مثال: نام مستعار محلی
حالا میتوانیم با استفاده از یک فایل پیکره بندی فهرست نامهای مستعار محلی را استخراج کنیم و از آنها در پستفیک استفاده کنیم. نمونه فایل زیر
# # pgsql config file for local(8) aliases(5) lookups # # # The hosts that Postfix will try to connect to hosts = host1.some.domain host2.some.domain # The user name and password to log into the pgsql server. user = someone password = some_password # The database name on the servers. dbname = customer_database # Postfix 2.2 and later The SQL query template. See pgsql_table(5). query = SELECT forw_addr FROM mxaliases WHERE alias='%s' AND status='paid' # For Postfix releases prior to 2.2. See pgsql_table(5) for details. select_field = forw_addr table = mxaliases where_field = alias # Don't forget the leading "AND"! additional_conditions = AND status = 'paid'
همه چیز آماده است!!
نتیجه: اتصال پایگاه داده به postfix
با اضافه کردن دو افزونه pgsql , proxymap با کارایی بالایی میتوانید فهرست نامهای مستعار برای ایمیل را از پایگاه داده استخراج کنید.
تعیین لیست الیاس Alias در سیستم Postfix برای ارسال و یا دریافت ایمیل با استفاده از پایگاه داده Postgresql