Skip to content

Commit 03b6336

Browse files
author
Dominik
committed
New parameter reject_sender_login_mismatch
Added prefetching to dovecot to halve database-queries Added mdbox-creation for new Mailboxes in mdbox-format Conflicts: install/tpl/debian6_dovecot-sql.conf.master install/tpl/debian_dovecot-sql.conf.master install/tpl/debian_postfix.conf.master install/tpl/fedora_dovecot-sql.conf.master install/tpl/fedora_postfix.conf.master install/tpl/gentoo_postfix.conf.master install/tpl/opensuse_dovecot-sql.conf.master install/tpl/opensuse_postfix.conf.master interface/web/admin/templates/server_config_mail_edit.htm server/cron_daily.php server/plugins-available/mail_plugin.inc.php server/plugins-available/postfix_server_plugin.inc.php
1 parent 7570f81 commit 03b6336

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+168
-75
lines changed

install/dist/lib/fedora.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ function configure_postfix($options = '')
143143
//* mysql-virtual_sender.cf
144144
$this->process_postfix_config('mysql-virtual_sender.cf');
145145

146+
//* mysql-virtual_sender_login_maps.cf
147+
$this->process_postfix_config('mysql-virtual_sender_login_maps.cf');
148+
146149
//* mysql-virtual_client.cf
147150
$this->process_postfix_config('mysql-virtual_client.cf');
148151

install/dist/lib/opensuse.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ function configure_postfix($options = '')
159159
//* mysql-virtual_sender.cf
160160
$this->process_postfix_config('mysql-virtual_sender.cf');
161161

162+
//* mysql-virtual_sender_login_maps.cf
163+
$this->process_postfix_config('mysql-virtual_sender_login_maps.cf');
164+
162165
//* mysql-virtual_client.cf
163166
$this->process_postfix_config('mysql-virtual_client.cf');
164167

install/lib/installer_base.lib.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,9 @@ public function configure_postfix($options = '') {
694694
//* mysql-virtual_sender.cf
695695
$this->process_postfix_config('mysql-virtual_sender.cf');
696696

697+
//* mysql-virtual_sender_login_maps.cf
698+
$this->process_postfix_config('mysql-virtual_sender_login_maps.cf');
699+
697700
//* mysql-virtual_client.cf
698701
$this->process_postfix_config('mysql-virtual_client.cf');
699702

install/tpl/debian6_dovecot-sql.conf.master

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ driver = mysql
1313
connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password}
1414
default_pass_scheme = CRYPT
1515

16-
password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
17-
user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}'
16+
# password-query with prefetch
17+
password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
18+
user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}'
1819

1920
# The iterate_query is required for the doveadm command only and works only on dovecot 2 servers.
2021
# Do not enable it on Dovecot 1.x servers

install/tpl/debian6_dovecot2.conf.master

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ passdb {
1111
args = /etc/dovecot/dovecot-sql.conf
1212
driver = sql
1313
}
14+
userdb {
15+
driver = prefetch
16+
}
1417
userdb {
1518
args = /etc/dovecot/dovecot-sql.conf
1619
driver = sql

install/tpl/debian_dovecot-sql.conf.master

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ driver = mysql
120120
connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password}
121121
default_pass_scheme = CRYPT
122122

123-
password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
124-
user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
123+
# password-query with prefetch
124+
password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
125+
user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
125126

126127
# The iterate_query is required for the doveadm command only and works only on dovecot 2 servers.
127128
# Do not enable it on Dovecot 1.x servers

install/tpl/debian_dovecot.conf.master

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,8 +1006,8 @@ auth default {
10061006
# This can be made to work with SQL and LDAP databases, see their example
10071007
# configuration files for more information how to do it.
10081008
# <doc/wiki/UserDatabase.Prefetch.txt>
1009-
#userdb prefetch {
1010-
#}
1009+
userdb prefetch {
1010+
}
10111011

10121012
# User to use for the process. This user needs access to only user and
10131013
# password databases, nothing else. Only shadow and pam authentication

install/tpl/debian_dovecot2.conf.master

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ passdb {
1212
args = /etc/dovecot/dovecot-sql.conf
1313
driver = sql
1414
}
15+
userdb {
16+
driver = prefetch
17+
}
1518
userdb {
1619
args = /etc/dovecot/dovecot-sql.conf
1720
driver = sql

install/tpl/debian_postfix.conf.master

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ smtpd_tls_key_file = {config_dir}/smtpd.key
2222
transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf
2323
relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf
2424
relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf
25-
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks
25+
smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf
26+
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps
2627
smtpd_sender_restrictions = check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf regexp:{config_dir}/tag_as_originating.re, permit_mynetworks, check_sender_access regexp:{config_dir}/tag_as_foreign.re
2728
smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf
2829
smtpd_client_message_rate_limit = 100

install/tpl/fedora_dovecot-sql.conf.master

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,9 @@ driver = mysql
133133
connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password}
134134
default_pass_scheme = CRYPT
135135

136-
password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
137-
user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}'
136+
# password-query with prefetch
137+
password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
138+
user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
138139

139140
# The iterate_query is required for the doveadm command only and works only on dovecot 2 servers.
140141
# Do not enable it on Dovecot 1.x servers

0 commit comments

Comments
 (0)