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:
@@ -147,23 +147,16 @@ return Array(
|
|||||||
'chmod 0750 ' . $settings['system']['vmail_homedir'],
|
'chmod 0750 ' . $settings['system']['vmail_homedir'],
|
||||||
'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo',
|
'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo',
|
||||||
'touch /etc/postfix/main.cf',
|
'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',
|
'touch /etc/sasl2/smtpd.conf',
|
||||||
'chown root:root /etc/postfix/main.cf',
|
'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',
|
'chown root:root /etc/sasl2/smtpd.conf',
|
||||||
'chmod 0644 /etc/postfix/main.cf',
|
'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',
|
'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(
|
'files' => Array(
|
||||||
'etc_postfix_main.cf' => '/etc/postfix/main.cf',
|
'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_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_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',
|
||||||
'etc_sasl2_smtpd.conf' => '/etc/sasl2/smtpd.conf'
|
'etc_sasl2_smtpd.conf' => '/etc/sasl2/smtpd.conf'
|
||||||
),
|
),
|
||||||
'commands_2' => Array(
|
'commands_2' => Array(
|
||||||
@@ -189,24 +184,14 @@ return Array(
|
|||||||
'chown -R '.$vmail_user['name'].':'.$vmail_group['name'].' ' . $settings['system']['vmail_homedir'],
|
'chown -R '.$vmail_user['name'].':'.$vmail_group['name'].' ' . $settings['system']['vmail_homedir'],
|
||||||
'chmod 0750 ' . $settings['system']['vmail_homedir'],
|
'chmod 0750 ' . $settings['system']['vmail_homedir'],
|
||||||
'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo',
|
'mv /etc/postfix/main.cf /etc/postfix/main.cf.gentoo',
|
||||||
'touch /etc/postfix/main.cf',
|
'touch /etc/postfix/{main,master}.cf',
|
||||||
'touch /etc/postfix/master.cf',
|
'chown root:root /etc/postfix/{main,master}.cf',
|
||||||
'touch /etc/postfix/mysql-virtual_alias_maps.cf',
|
'chmod 0644 /etc/postfix/{main,master}.cf',
|
||||||
'touch /etc/postfix/mysql-virtual_mailbox_domains.cf',
|
'for suffix in {alias,mailbox,uid,gid}_maps mailbox_domains sender_permissions; do',
|
||||||
'touch /etc/postfix/mysql-virtual_mailbox_maps.cf',
|
' touch /etc/postfix/mysql-virtual_${suffix}.cf',
|
||||||
'touch /etc/postfix/mysql-virtual_sender_permissions.cf',
|
' chown root:postfix /etc/postfix/mysql-virtual_${suffix}.cf',
|
||||||
'chown root:root /etc/postfix/main.cf',
|
' chmod 0640 /etc/postfix/mysql-virtual_${suffix}.cf',
|
||||||
'chown root:root /etc/postfix/master.cf',
|
'done'
|
||||||
'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'
|
|
||||||
),
|
),
|
||||||
'files' => Array(
|
'files' => Array(
|
||||||
'etc_postfix_main.cf' => '/etc/postfix/main.cf',
|
'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_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_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_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(
|
'commands_2' => Array(
|
||||||
'rc-update add postfix default'
|
'rc-update add postfix default'
|
||||||
|
|||||||
@@ -45,13 +45,13 @@ smtpd_sasl_local_domain = $myhostname
|
|||||||
broken_sasl_auth_clients = yes
|
broken_sasl_auth_clients = yes
|
||||||
|
|
||||||
# Virtual delivery settings
|
# 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_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
|
||||||
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
|
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
|
||||||
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
|
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
|
||||||
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
|
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
|
||||||
virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
|
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uid_maps.cf
|
||||||
virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
|
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gid_maps.cf
|
||||||
|
|
||||||
# Local delivery settings
|
# Local delivery settings
|
||||||
local_transport = local
|
local_transport = local
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = mail_virtual
|
query = select destination from mail_virtual where email = '%s' and trim(destination) <> ''
|
||||||
select_field = destination
|
|
||||||
where_field = email
|
|
||||||
additional_conditions = and TRIM(destination) <> ''
|
|
||||||
hosts = <SQL_HOST>
|
hosts = <SQL_HOST>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = panel_domains
|
query = select domain from panel_domains where domain = '%s' and isemaildomain = '1'
|
||||||
select_field = domain
|
|
||||||
where_field = domain
|
|
||||||
additional_conditions = and isemaildomain = '1'
|
|
||||||
hosts = <SQL_HOST>
|
hosts = <SQL_HOST>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = mail_users
|
expansion_limit = 1
|
||||||
select_field = (quota*1024*1024)
|
query = select (quota*1024*1024) from mail_users where email = '%s'
|
||||||
where_field = email
|
hosts = <SQL_HOST>
|
||||||
hosts = <SQL_HOST>
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = mail_users
|
expansion_limit = 1
|
||||||
select_field = maildir
|
query = select concat(homedir,maildir) from mail_users where email = '%s'
|
||||||
where_field = email
|
|
||||||
hosts = <SQL_HOST>
|
hosts = <SQL_HOST>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -58,13 +58,13 @@ virtual_transport = dovecot
|
|||||||
dovecot_destination_recipient_limit = 1
|
dovecot_destination_recipient_limit = 1
|
||||||
|
|
||||||
# Virtual delivery settings
|
# 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_maps = mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf
|
||||||
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
|
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_mailbox_domains.cf
|
||||||
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
|
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
|
||||||
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
|
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf
|
||||||
virtual_uid_maps = static:<VIRTUAL_UID_MAPS>
|
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uid_maps.cf
|
||||||
virtual_gid_maps = static:<VIRTUAL_GID_MAPS>
|
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gid_maps.cf
|
||||||
|
|
||||||
# Local delivery settings
|
# Local delivery settings
|
||||||
local_transport = local
|
local_transport = local
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = mail_virtual
|
query = select destination from mail_virtual where email = '%s' and trim(destination) <> ''
|
||||||
select_field = destination
|
|
||||||
where_field = email
|
|
||||||
additional_conditions = and TRIM(destination) <> ''
|
|
||||||
hosts = <SQL_HOST>
|
hosts = <SQL_HOST>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = panel_domains
|
query = select domain from panel_domains where domain = '%s' and isemaildomain = '1'
|
||||||
select_field = domain
|
|
||||||
where_field = domain
|
|
||||||
additional_conditions = and isemaildomain = '1'
|
|
||||||
hosts = <SQL_HOST>
|
hosts = <SQL_HOST>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = mail_users
|
expansion_limit = 1
|
||||||
select_field = (quota*1024*1024)
|
query = select (quota*1024*1024) from mail_users where email = '%s'
|
||||||
where_field = email
|
hosts = <SQL_HOST>
|
||||||
hosts = <SQL_HOST>
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
user = <SQL_UNPRIVILEGED_USER>
|
user = <SQL_UNPRIVILEGED_USER>
|
||||||
password = <SQL_UNPRIVILEGED_PASSWORD>
|
password = <SQL_UNPRIVILEGED_PASSWORD>
|
||||||
dbname = <SQL_DB>
|
dbname = <SQL_DB>
|
||||||
table = mail_users
|
expansion_limit = 1
|
||||||
select_field = maildir
|
query = select concat(homedir,maildir) from mail_users where email = '%s'
|
||||||
where_field = email
|
|
||||||
hosts = <SQL_HOST>
|
hosts = <SQL_HOST>
|
||||||
|
|||||||
@@ -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>
|
||||||
Reference in New Issue
Block a user