2c9e1886f94d9a85b6a236b1af92bbb3075eaeca
[misc/hallinta-vmail] / postfix.txt
1 main.cf
2
3 #
4 # Mailserver mit PostgreSQL
5 #
6 virtual_mailbox_domains = pgsql:/etc/postfix/virtual-mailbox-domains.cf
7 virtual_mailbox_maps = pgsql:/etc/postfix/virtual-mailbox-maps.cf
8 virtual_alias_maps = pgsql:/etc/postfix/virtual-alias-maps.cf
9 virtual_uid_maps = static:112
10 virtual_gid_maps = static:116
11 # mailbox_command = /usr/lib/dovecot/deliver
12 # mailbox_command = /usr/bin/spamc -e /usr/lib/dovecot/deliver
13 virtual_transport = dovecot
14 # dovecot_destination_recipient_limit = 1
15
16 virtual-alias-maps.cf
17
18 user = vmail
19 password = SECRET
20 hosts = localhost
21 dbname = void
22 query = SELECT forward
23    FROM vmail_user u
24    JOIN vmail_domain d ON u.vmail_domain_id=d.id
25    WHERE u.username || '@' || d.name = '%s' AND forward IS NOT NULL AND forward <> '' AND active = 1
26
27 Query mit Catchall mittels u.username = '*'
28
29 query = SELECT forward
30    FROM vmail_user u
31    JOIN vmail_domain d ON u.vmail_domain_id=d.id
32    WHERE (u.username || '@' || d.name = '%s' OR u.username || '@' || d.name = '*' || substring('%s' from position('@' in '%s')))
33      AND forward IS NOT NULL AND forward <> '' AND active = 1
34
35
36 virtual-mailbox-domains.cf
37
38 user = vmail
39 password = SECRET
40 hosts = localhost
41 dbname = void
42 query = SELECT 1
43     FROM vmail_domain
44     WHERE name = '%s'
45
46 virtual-mailbox-maps.cf
47
48 user = vmail
49 password = SECRET
50 hosts = localhost
51 dbname = void
52 query = SELECT 1
53     FROM vmail_user u
54     JOIN vmail_domain d ON u.vmail_domain_id=d.id
55     WHERE lower(u.username) || '@' || lower(d.name) = lower('%s') AND (forward IS NULL OR forward = '') AND active = 1
56
57 /etc/dovecot/dovecot-sql.conf.ext
58
59 driver = pgsql
60 connect = host=localhost dbname=void user=vmail password=hfDcHCxXeVPhahjX
61 default_pass_scheme = PLAIN-MD5
62 # SELECT home, uid, gid FROM users WHERE username = '%n' AND domain = '%d')
63 password_query = SELECT password \
64   FROM vmail_user v \
65   JOIN vmail_domain d ON v.vmail_domain_id=d.id \
66   WHERE v.username='%n' AND d.name='%d' AND password IS NOT NULL AND active = 1
67
68 /etc/dovecot/conf.d/10-mail.conf
69
70 first_valid_uid = 112
71