Update scripts for postfix+courier and postfix+dovecot for gentoo.

Changes here include:
- shorten some repetitive commands (gentoo.inc.php)
- maps uid/gid from database instead of statically on main.cf
- maps 'homedir' from database instead of statically in
  vmail_mailbox_base (concatenates 'homedir' and 'maildir' columns from
  mail_users table)
- update mysql query files to use strictly postfix 2.2+ new format
  (in accordance to http://www.postfix.org/mysql_table.5.html)
This commit is contained in:
avengerx
2012-07-02 02:40:39 -03:00
parent 07e879a9f8
commit 7a4ce63b75
15 changed files with 62 additions and 67 deletions

View File

@@ -147,23 +147,16 @@ return Array(
'chmod 0750 ' . $settings['system']['vmail_homedir'],
'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo',
'touch /etc/postfix/main.cf',
'touch /etc/postfix/mysql-virtual_alias_maps.cf',
'touch /etc/postfix/mysql-virtual_mailbox_domains.cf',
'touch /etc/postfix/mysql-virtual_mailbox_maps.cf',
'touch /etc/postfix/mysql-virtual_sender_permissions.cf',
'touch /etc/sasl2/smtpd.conf',
'chown root:root /etc/postfix/main.cf',
'chown root:postfix /etc/postfix/mysql-virtual_alias_maps.cf',
'chown root:postfix /etc/postfix/mysql-virtual_mailbox_domains.cf',
'chown root:postfix /etc/postfix/mysql-virtual_mailbox_maps.cf',
'chown root:postfix /etc/postfix/mysql-virtual_sender_permissions.cf',
'chown root:root /etc/sasl2/smtpd.conf',
'chmod 0644 /etc/postfix/main.cf',
'chmod 0640 /etc/postfix/mysql-virtual_alias_maps.cf',
'chmod 0640 /etc/postfix/mysql-virtual_mailbox_domains.cf',
'chmod 0640 /etc/postfix/mysql-virtual_mailbox_maps.cf',
'chmod 0640 /etc/postfix/mysql-virtual_sender_permissions.cf',
'chmod 0600 /etc/sasl2/smtpd.conf',
'for suffix in {alias,mailbox,uid,gid}_maps mailbox_domains sender_permissions; do',
' touch /etc/postfix/mysql-virtual_${suffix}.cf',
' chown root:postfix /etc/postfix/mysql-virtual_${suffix}.cf',
' chmod 0640 /etc/postfix/mysql-virtual_${suffix}.cf',
'done'
),
'files' => Array(
'etc_postfix_main.cf' => '/etc/postfix/main.cf',
@@ -171,6 +164,8 @@ return Array(
'etc_postfix_mysql-virtual_mailbox_domains.cf' => '/etc/postfix/mysql-virtual_mailbox_domains.cf',
'etc_postfix_mysql-virtual_mailbox_maps.cf' => '/etc/postfix/mysql-virtual_mailbox_maps.cf',
'etc_postfix_mysql-virtual_sender_permissions.cf' => '/etc/postfix/mysql-virtual_sender_permissions.cf',
'etc_postfix_mysql-virtual_uid_maps.cf' => '/etc/postfix/mysql-virtual_uid_maps.cf',
'etc_postfix_mysql-virtual_gid_maps.cf' => '/etc/postfix/mysql-virtual_gid_maps.cf',
'etc_sasl2_smtpd.conf' => '/etc/sasl2/smtpd.conf'
),
'commands_2' => Array(
@@ -189,24 +184,14 @@ return Array(
'chown -R '.$vmail_user['name'].':'.$vmail_group['name'].' ' . $settings['system']['vmail_homedir'],
'chmod 0750 ' . $settings['system']['vmail_homedir'],
'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo',
'touch /etc/postfix/main.cf',
'touch /etc/postfix/master.cf',
'touch /etc/postfix/mysql-virtual_alias_maps.cf',
'touch /etc/postfix/mysql-virtual_mailbox_domains.cf',
'touch /etc/postfix/mysql-virtual_mailbox_maps.cf',
'touch /etc/postfix/mysql-virtual_sender_permissions.cf',
'chown root:root /etc/postfix/main.cf',
'chown root:root /etc/postfix/master.cf',
'chown root:postfix /etc/postfix/mysql-virtual_alias_maps.cf',
'chown root:postfix /etc/postfix/mysql-virtual_mailbox_domains.cf',
'chown root:postfix /etc/postfix/mysql-virtual_mailbox_maps.cf',
'chown root:postfix /etc/postfix/mysql-virtual_sender_permissions.cf',
'chmod 0644 /etc/postfix/main.cf',
'chmod 0644 /etc/postfix/master.cf',
'chmod 0640 /etc/postfix/mysql-virtual_alias_maps.cf',
'chmod 0640 /etc/postfix/mysql-virtual_mailbox_domains.cf',
'chmod 0640 /etc/postfix/mysql-virtual_mailbox_maps.cf',
'chmod 0640 /etc/postfix/mysql-virtual_sender_permissions.cf'
'touch /etc/postfix/{main,master}.cf',
'chown root:root /etc/postfix/{main,master}.cf',
'chmod 0644 /etc/postfix/{main,master}.cf',
'for suffix in {alias,mailbox,uid,gid}_maps mailbox_domains sender_permissions; do',
' touch /etc/postfix/mysql-virtual_${suffix}.cf',
' chown root:postfix /etc/postfix/mysql-virtual_${suffix}.cf',
' chmod 0640 /etc/postfix/mysql-virtual_${suffix}.cf',
'done'
),
'files' => Array(
'etc_postfix_main.cf' => '/etc/postfix/main.cf',
@@ -214,7 +199,9 @@ return Array(
'etc_postfix_mysql-virtual_alias_maps.cf' => '/etc/postfix/mysql-virtual_alias_maps.cf',
'etc_postfix_mysql-virtual_mailbox_domains.cf' => '/etc/postfix/mysql-virtual_mailbox_domains.cf',
'etc_postfix_mysql-virtual_mailbox_maps.cf' => '/etc/postfix/mysql-virtual_mailbox_maps.cf',
'etc_postfix_mysql-virtual_sender_permissions.cf' => '/etc/postfix/mysql-virtual_sender_permissions.cf'
'etc_postfix_mysql-virtual_sender_permissions.cf' => '/etc/postfix/mysql-virtual_sender_permissions.cf',
'etc_postfix_mysql-virtual_uid_maps.cf' => '/etc/postfix/mysql-virtual_uid_maps.cf',
'etc_postfix_mysql-virtual_gid_maps.cf' => '/etc/postfix/mysql-virtual_gid_maps.cf'
),
'commands_2' => Array(
'rc-update add postfix default'

View File

@@ -45,13 +45,13 @@ smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
# Virtual delivery settings
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uid_maps.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gid_maps.cf
# Local delivery settings
local_transport = local

View File

@@ -1,8 +1,5 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = mail_virtual
select_field = destination
where_field = email
additional_conditions = and TRIM(destination) <> ''
query = select destination from mail_virtual where email = '%s' and trim(destination) <> ''
hosts = <SQL_HOST>

View File

@@ -0,0 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
expansion_limit = 1
query = select gid from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -1,8 +1,5 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = panel_domains
select_field = domain
where_field = domain
additional_conditions = and isemaildomain = '1'
query = select domain from panel_domains where domain = '%s' and isemaildomain = '1'
hosts = <SQL_HOST>

View File

@@ -1,7 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = mail_users
select_field = (quota*1024*1024)
where_field = email
hosts = <SQL_HOST>
expansion_limit = 1
query = select (quota*1024*1024) from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -1,7 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = mail_users
select_field = maildir
where_field = email
expansion_limit = 1
query = select concat(homedir,maildir) from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -0,0 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
expansion_limit = 1
query = select uid from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -58,13 +58,13 @@ virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
# Virtual delivery settings
virtual_mailbox_base = <VIRTUAL_MAILBOX_BASE>
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uid_maps.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gid_maps.cf
# Local delivery settings
local_transport = local

View File

@@ -1,8 +1,5 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = mail_virtual
select_field = destination
where_field = email
additional_conditions = and TRIM(destination) <> ''
query = select destination from mail_virtual where email = '%s' and trim(destination) <> ''
hosts = <SQL_HOST>

View File

@@ -0,0 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
expansion_limit = 1
query = select gid from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -1,8 +1,5 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = panel_domains
select_field = domain
where_field = domain
additional_conditions = and isemaildomain = '1'
query = select domain from panel_domains where domain = '%s' and isemaildomain = '1'
hosts = <SQL_HOST>

View File

@@ -1,7 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = mail_users
select_field = (quota*1024*1024)
where_field = email
hosts = <SQL_HOST>
expansion_limit = 1
query = select (quota*1024*1024) from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -1,7 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
table = mail_users
select_field = maildir
where_field = email
expansion_limit = 1
query = select concat(homedir,maildir) from mail_users where email = '%s'
hosts = <SQL_HOST>

View File

@@ -0,0 +1,6 @@
user = <SQL_UNPRIVILEGED_USER>
password = <SQL_UNPRIVILEGED_PASSWORD>
dbname = <SQL_DB>
expansion_limit = 1
query = select uid from mail_users where email = '%s'
hosts = <SQL_HOST>