This list is closed, nobody may subscribe to it.
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2010 |
Jan
(18) |
Feb
(43) |
Mar
(11) |
Apr
(50) |
May
(10) |
Jun
|
Jul
(39) |
Aug
(30) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
(14) |
Feb
(43) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(4) |
Oct
(12) |
Nov
(45) |
Dec
(3) |
| 2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
(65) |
May
(2) |
Jun
(19) |
Jul
(6) |
Aug
(19) |
Sep
(23) |
Oct
(11) |
Nov
(21) |
Dec
(16) |
| 2013 |
Jan
(21) |
Feb
(2) |
Mar
(2) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
(4) |
Feb
(34) |
Mar
(10) |
Apr
|
May
|
Jun
(10) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
|
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
|
10
|
11
|
12
|
13
|
14
(2) |
15
|
16
|
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
|
24
|
25
|
26
|
27
(6) |
28
(9) |
29
|
30
(2) |
|
From: <nev...@us...> - 2012-06-30 19:09:35
|
details: http://hg.localdomain.org/vmm/rev/f9e6e0a237f0 changeset: 575:f9e6e0a237f0 user: Pascal Volk date: Sat Jun 30 19:09:20 2012 +0000 description: README: Updated URL of the hg rep...@sf.... diffstat: README | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 9acf628bf0be -r f9e6e0a237f0 README --- a/README Sat Jun 30 16:21:26 2012 +0000 +++ b/README Sat Jun 30 19:09:20 2012 +0000 @@ -118,7 +118,7 @@ • mirror repositories ‣ ``https://bitbucket.org/pvo/vmm`` - ‣ ``http://vmm.hg.sourceforge.net/hgweb/vmm/vmm`` + ‣ ``http://hg.code.sf.net/p/vmm/code`` Released versions are also available as gzip compressed tar archives at: https://sourceforge.net/projects/vmm/files/vmm/ |
|
From: <nev...@us...> - 2012-06-30 16:21:52
|
details: http://hg.localdomain.org/vmm/rev/9acf628bf0be changeset: 574:9acf628bf0be user: Pascal Volk date: Sat Jun 30 16:21:26 2012 +0000 description: man: Deleted erroneous placed backslash. diffstat: man/man1/vmm.1 | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r 0643c25121b5 -r 9acf628bf0be man/man1/vmm.1 --- a/man/man1/vmm.1 Thu Jun 28 21:40:08 2012 +0000 +++ b/man/man1/vmm.1 Sat Jun 30 16:21:26 2012 +0000 @@ -761,7 +761,7 @@ domain's value to be in effect. .PP Example: -.PP\ +.PP .nf .B vmm userservices d....@ex... SMTP IMAP .\" ------------------------------------ |
|
From: <nev...@us...> - 2012-06-28 21:49:19
|
details: http://hg.localdomain.org/vmm/rev/0643c25121b5 changeset: 573:0643c25121b5 user: Pascal Volk date: Thu Jun 28 21:40:08 2012 +0000 description: Added tag vmm-0.6.0 for changeset 3238c58d01ae diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 3238c58d01ae -r 0643c25121b5 .hgtags --- a/.hgtags Thu Jun 28 21:39:59 2012 +0000 +++ b/.hgtags Thu Jun 28 21:40:08 2012 +0000 @@ -7,3 +7,4 @@ 3e972996da7f135f0a91afaea831befbac4c3351 vmm-0.5.2 668951708f2f28f49da94479a89c40ab8c8a9b01 trunk 0000000000000000000000000000000000000000 trunk +3238c58d01ae7f967f0a0a53e7fe53e57a6562ca vmm-0.6.0 |
|
From: <nev...@us...> - 2012-06-28 21:49:06
|
details: http://hg.localdomain.org/vmm/rev/3238c58d01ae changeset: 572:3238c58d01ae user: Pascal Volk date: Thu Jun 28 21:39:59 2012 +0000 description: Released vmm-0.6.0 diffstat: ChangeLog | 2922 +++++++++++++++++++++++++++++++++++++++ NEWS | 40 + VirtualMailManager/constants.py | 4 +- setup.py | 4 +- 4 files changed, 2967 insertions(+), 3 deletions(-) diffs (truncated from 3013 to 300 lines): diff -r a4aead244f75 -r 3238c58d01ae ChangeLog --- a/ChangeLog Thu Jun 28 19:26:50 2012 +0000 +++ b/ChangeLog Thu Jun 28 21:39:59 2012 +0000 @@ -1,3 +1,2925 @@ +=== 0.6.0 === +2012-06-28 Pascal Volk <us...@lo...> + + * VirtualMailManager/Account.py, VirtualMailManager/Alias.py, + VirtualMailManager/AliasDomain.py, VirtualMailManager/Config.py, + VirtualMailManager/Domain.py, VirtualMailManager/EmailAddress.py, + VirtualMailManager/Exceptions.py, + VirtualMailManager/MailLocation.py, VirtualMailManager/Relocated.py, + VirtualMailManager/Transport.py, + VirtualMailManager/VirtualMailManager.py, + VirtualMailManager/constants/ERROR.py, + VirtualMailManager/constants/EXIT.py, + VirtualMailManager/constants/VERSION.py, + VirtualMailManager/constants/__init__.py, + VirtualMailManager/ext/Postconf.py, pgsql + /create_optional_types_and_functions-dovecot-1.2.x.pgsql, + pgsql/create_optional_types_and_functions.pgsql, + pgsql/update_tables_0.4.x-0.5.pgsql, + pgsql/update_tables_0.5.x_for_dovecot-1.2.x.pgsql, + pgsql/update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql, + postfix/pgsql-transport.cf, update_config_0.4.x-0.5.py: + Merged changes from v0.6.x(28230a8230bf). + [a4aead244f75] [tip] + + * Close v0.6.x branch. + [28230a8230bf] <v0.6.x> + + * vmm: + vmm: Don't insert the module directory into sys.path by default. + Doesn't make much sense, if the code is installed inside sys.path. + [54a84a311654] <v0.6.x> + + * COPYING, VirtualMailManager/__init__.py, + VirtualMailManager/account.py, VirtualMailManager/alias.py, + VirtualMailManager/aliasdomain.py, + VirtualMailManager/cli/__init__.py, + VirtualMailManager/cli/config.py, VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/main.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py, + VirtualMailManager/config.py, VirtualMailManager/constants.py, + VirtualMailManager/domain.py, VirtualMailManager/emailaddress.py, + VirtualMailManager/errors.py, VirtualMailManager/ext/__init__.py, + VirtualMailManager/ext/postconf.py, VirtualMailManager/handler.py, + VirtualMailManager/mailbox.py, VirtualMailManager/maillocation.py, + VirtualMailManager/network.py, VirtualMailManager/password.py, + VirtualMailManager/pycompat/__init__.py, + VirtualMailManager/pycompat/hashlib.py, + VirtualMailManager/quotalimit.py, VirtualMailManager/relocated.py, + VirtualMailManager/serviceset.py, VirtualMailManager/transport.py, + setup.py, update_config.py, vmm: + Updated copyright notices to include the year 2012. + [14abdd04ddf5] <v0.6.x> + + * TODO: + TODO: Removed "listpwschemes" entry. Was done with changeset + a64c1b5e08b4 + [11ed67ee7ebb] <v0.6.x> + + * UPGRADE: + UPGRADE: Updated documentation. + [007786e58fb7] <v0.6.x> + + * VirtualMailManager/cli/subcommands.py, man/de/man1/vmm.1, + man/man1/vmm.1: + VMM/cli/subcommands: Replaced the keyword `default' by `domain'. + Patch by Martin F. Krafft + [a75923ce2842] <v0.6.x> + +2012-06-27 Pascal Volk <us...@lo...> + + * Configure.Dovecot_2, INSTALL: + INSTALL: Added description how to create additional dove* + user/group. `doveauth' user and group for the authentication process + and the group `dovemail' for mail related Dovecot processes. + [55148bc6348e] <v0.6.x> + + * INSTALL: + INSTALL: Updated documentation. + [b17a9d7a59ae] <v0.6.x> + + * Configure.Dovecot_2, install.sh, upgrade.sh: + Configure.Dovecot_2: Added configuration documentation for Dovecot_2 + >= 2.0. + [b5bb7b34e831] <v0.6.x> + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py: + VMM: The Python 2.4.x compatibility commit - part III. + [b0165b7af7a3] <v0.6.x> + + * VirtualMailManager/account.py: + VMM/account: Check the account's transport only when we have a + transport. + [2662f4e17eb4] <v0.6.x> + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, + VirtualMailManager/handler.py: + VMM: The Python 2.4.x compatibility commit. + [cc0f67f99780] <v0.6.x> + +2012-06-14 Pascal Volk <us...@lo...> + + * pgsql/set-permissions.py: + pgsql/set-permissions.py: Extended permissions. Postfix needs read + access on the postfix_gid view. Dovecot needs read permissions on + both mailboxformat columns. + [2fcf12fdecc2] <v0.6.x> + + * VirtualMailManager/handler.py: + VMM/handler: Restored method Handler.domain_transport(). It went + somehow lost with changeset 5806fb74130b. + [1498abbb6c91] <v0.6.x> + +2012-05-31 Pascal Volk <us...@lo...> + + * pgsql/set-permissions.py: + pgsql: Added helper script: set-permissions.py. + [fbbb16476c5b] <v0.6.x> + +2012-04-15 martin f. krafft <ma...@ma...> + + * TODO, VirtualMailManager/cli/handler.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/common.py, + VirtualMailManager/constants.py, VirtualMailManager/handler.py: + Provide list{addresses,aliases,users,relocated} subcommands + + The patch provides the list{addresses,aliases,users,relocated} + subcommands to the UI. All commands actually take the same path in + the code and only one query is run with different parameters for + each case. + + There are still two shortcomings: + + 1. With alias domains, the output order is not as one might want + it, e.g. + + fo...@ex... ba...@ex... + fo...@ex... ba...@ex... + + when it should really be foo@ twice and then bar@ twice. I have + not found a way to modify the SQL accordingly. + + 2. The SELECT queries for Accounts, Alias and Relocated are hard- + coded in common.py. + [499c63f52462] <v0.6.x> + + * man/de/man1/vmm.1, man/de/man5/vmm.cfg.5, man/man1/vmm.1, + man/man5/vmm.cfg.5: + man: escape hyphens + + Hyphens inside words must be spelt \- instead of just -. This patch + fixes up the manpages. + * * * . + [a93671970617] <v0.6.x> + + * man/de/man1/vmm.1, man/man1/vmm.1: + man: add 'catchall' to domaininfo + + Since the addition of catchall, the domaininfo subcommand can also + take 'catchall' as a [detail] to limit the output of details to the + catch-all aliases. + + Also, the number of catch-all destinations is now included in the + simple domaininfo output. + [6f2c41c3c7d6] <v0.6.x> + +2012-04-15 Pascal Volk <us...@lo...> + + * man/de/man1/vmm.1, man/man1/vmm.1: + man: vmm1: Use `fqdn' instead of `domain' in catchall* descriptions. + Fixed a typo s/cadd/cad/. Replaced double quotes by \(dq. + [107f7a3be9f5] <v0.6.x> + + * VirtualMailManager/cli/subcommands.py: + VMM/cli/subcommands: Use the `fqdn' argument placeholder also for + catch-all subcommands. + [62f2daff853e] <v0.6.x> + +2012-04-15 martin f. krafft <ma...@ma...> + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Fix transport_maps function for non-existent domains + + The postfix_transport_maps function had a bug causing + + 2012-04-15 17:40:22 CEST LOG: statement: SELECT transport FROM + postfix_transport_map('logcheck', 'domine.madduck.net'); + 2012-04-15 17:40:22 CEST ERROR: query returned no rows + + when the domain was not in the database. This would make did be NULL + and make the query fail. + + This patch moves the tid query until after a check for did. If the + latter is NULL, the function RETURNs (rather than fails). + [867d950ce7b7] <v0.6.x> + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Revert caching of destination interpolation + + Since 'destination' comes from the table in the query, it cannot be + cached across queries! Doh! + [44a808af6cf4] <v0.6.x> + +2012-04-15 Pascal Volk <us...@lo...> + + * pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + pgsql: update_tables_*: Added missing `NOT' to `… tid DROP NOT + NULL;'. + [92ef34f07da3] <v0.6.x> + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql: + pgsql: Create column `note' as text. + [5020c56f9388] <v0.6.x> + +2012-04-15 martin f. krafft <ma...@ma...> + + * VirtualMailManager/common.py: + Add docstring for common.format_domain_default + [79f09cdd1a21] <v0.6.x> + +2012-04-14 martin f. krafft <ma...@ma...> + + * man/de/man1/vmm.1, man/man1/vmm.1: + Document domainnote in manpages + + 5806fb74130b did not contain this, so I must have forgotten it. + Oops. + [47254b46c361] <v0.6.x> + + * TODO: + Remove domain/account notes from TODO + [ff805bd17817] <v0.6.x> + + * VirtualMailManager/account.py: + Include account note in getuser output + + Modify the getuser output to include an account note, if one is + present + [1b3bdce0bf87] <v0.6.x> + + * VirtualMailManager/cli/subcommands.py: + Display formatted notes in info output + + If the user/domain object has an attached note, this patch makes the + userinfo/domaininfo output print the note, wrapped to the terminal + size. + [c3b98364f03d] <v0.6.x> + + * .hgignore: + Ignore *.egg-status build directory created by setuptools + [a582f1452bc0] <v0.6.x> + + * man/de/man1/vmm.1, man/man1/vmm.1: + Add user/domainnote commands to manpages + [a8ee0328f908] <v0.6.x> + + * VirtualMailManager/account.py, + VirtualMailManager/cli/subcommands.py, VirtualMailManager/domain.py, + VirtualMailManager/handler.py: + Add note field to Account/Domain and CLI + [5806fb74130b] <v0.6.x> + + * pgsql/create_tables-dovecot-1.2.x.pgsql, pgsql/create_tables.pgsql, + pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql, + pgsql/update_tables_0.5.x-0.6.pgsql: + Modify SQL to add note field to domain_data and users + [1f9ea5658627] <v0.6.x> + +2012-04-14 Pascal Volk <us...@lo...> + + * man/de/man1/vmm.1, man/man1/vmm.1: + man: vmm.1: subcommand's name argument is optional now. Based on + martin f. krafft's v2 of changeset c340ba4bd544. + [9a23043b0530] <v0.6.x> + +2012-04-14 martin f. krafft <ma...@ma...> + + * VirtualMailManager/cli/subcommands.py, + VirtualMailManager/handler.py, man/de/man1/vmm.1, man/man1/vmm.1: + Allow username to take no argument to erase value + + Once a username has been set, it could not be removed via the UI. + Now, if no argument is passed to username, the value stored is + replaced with NULL. + [c340ba4bd544] <v0.6.x> + + * README: + Add inheritance as a feature to README + [e956ddc868c0] <v0.6.x> + |
|
From: <nev...@us...> - 2012-06-28 19:28:55
|
details: http://hg.localdomain.org/vmm/rev/a4aead244f75 changeset: 571:a4aead244f75 user: Pascal Volk date: Thu Jun 28 19:26:50 2012 +0000 description: Merged changes from v0.6.x(28230a8230bf). diffstat: .hgignore | 9 + COPYING | 2 +- Configure.Dovecot_2 | 205 + INSTALL | 142 +- README | 151 + TODO | 31 +- UPGRADE | 94 +- VirtualMailManager/Account.py | 267 - VirtualMailManager/Alias.py | 122 - VirtualMailManager/AliasDomain.py | 99 - VirtualMailManager/Config.py | 187 - VirtualMailManager/Domain.py | 313 - VirtualMailManager/EmailAddress.py | 76 - VirtualMailManager/Exceptions.py | 77 - VirtualMailManager/MailLocation.py | 84 - VirtualMailManager/Relocated.py | 103 - VirtualMailManager/Transport.py | 90 - VirtualMailManager/VirtualMailManager.py | 709 ---- VirtualMailManager/__init__.py | 58 +- VirtualMailManager/account.py | 506 +++ VirtualMailManager/alias.py | 166 + VirtualMailManager/aliasdomain.py | 143 + VirtualMailManager/catchall.py | 171 + VirtualMailManager/cli/__init__.py | 100 + VirtualMailManager/cli/config.py | 96 + VirtualMailManager/cli/handler.py | 99 + VirtualMailManager/cli/main.py | 80 + VirtualMailManager/cli/subcommands.py | 1091 ++++++ VirtualMailManager/common.py | 262 + VirtualMailManager/config.py | 540 +++ VirtualMailManager/constants.py | 89 + VirtualMailManager/constants/ERROR.py | 52 - VirtualMailManager/constants/EXIT.py | 7 - VirtualMailManager/constants/VERSION.py | 11 - VirtualMailManager/constants/__init__.py | 6 - VirtualMailManager/domain.py | 573 +++ VirtualMailManager/emailaddress.py | 155 + VirtualMailManager/errors.py | 71 + VirtualMailManager/ext/Postconf.py | 83 - VirtualMailManager/ext/__init__.py | 2 +- VirtualMailManager/ext/postconf.py | 127 + VirtualMailManager/handler.py | 889 +++++ VirtualMailManager/mailbox.py | 294 + VirtualMailManager/maillocation.py | 161 + VirtualMailManager/network.py | 100 + VirtualMailManager/password.py | 459 ++ VirtualMailManager/pycompat/__init__.py | 38 + VirtualMailManager/pycompat/hashlib.py | 58 + VirtualMailManager/quotalimit.py | 126 + VirtualMailManager/relocated.py | 123 + VirtualMailManager/serviceset.py | 168 + VirtualMailManager/transport.py | 100 + doc/Makefile | 89 + doc/source/conf.py | 201 + doc/source/index.rst | 29 + doc/source/vmm.rst | 132 + doc/source/vmm_alias.rst | 87 + doc/source/vmm_config.rst | 275 + doc/source/vmm_constants_error.rst | 227 + doc/source/vmm_emailaddress.rst | 61 + doc/source/vmm_errors.rst | 122 + doc/source/vmm_relocated.rst | 60 + install.sh | 6 +- man/de/man1/vmm.1 | 1254 +++++-- man/de/man5/vmm.cfg.5 | 812 +++- man/man1/vmm.1 | 1200 +++++-- man/man5/vmm.cfg.5 | 772 +++- pgsql/create_optional_types_and_functions-dovecot-1.2.x.pgsql | 267 - pgsql/create_optional_types_and_functions.pgsql | 267 - pgsql/create_tables-dovecot-1.2.x.pgsql | 698 +++- pgsql/create_tables.pgsql | 676 +++- pgsql/set-permissions.py | 169 + pgsql/update_tables_0.4.x-0.5.pgsql | 156 - pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql | 680 ++++ pgsql/update_tables_0.5.x-0.6.pgsql | 659 ++++ pgsql/update_tables_0.5.x_for_dovecot-1.2.x.pgsql | 9 - pgsql/update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql | 36 - po/de.po | 1508 ++++++--- po/fi.po | 1603 ++++++--- po/fr.po | 1585 +++++++-- po/vmm.pot | 1166 +++++-- postfix/pgsql-relocated_maps.cf | 2 +- postfix/pgsql-smtpd_sender_login_maps.cf | 2 +- postfix/pgsql-transport.cf | 14 - postfix/pgsql-transport_maps.cf | 14 + postfix/pgsql-virtual_alias_maps.cf | 2 +- postfix/pgsql-virtual_mailbox_maps.cf | 2 +- postfix/pgsql-virtual_uid_maps.cf | 2 +- setup.py | 80 +- update_config.py | 161 + update_config_0.4.x-0.5.py | 113 - upgrade.sh | 32 +- vmm | 547 +--- vmm.cfg | 155 +- 94 files changed, 18764 insertions(+), 6933 deletions(-) diffs (truncated from 27778 to 300 lines): diff -r c0e1fb1b0145 -r a4aead244f75 .hgignore --- a/.hgignore Mon Nov 07 03:22:15 2011 +0000 +++ b/.hgignore Thu Jun 28 19:26:50 2012 +0000 @@ -5,3 +5,12 @@ *.py? .*.swp .swp +doc/build +build +debian/vmm +debian/*.log +debian/*.debhelper +debian/files +debian/*substvars +.pc +*.egg-info diff -r c0e1fb1b0145 -r a4aead244f75 COPYING --- a/COPYING Mon Nov 07 03:22:15 2011 +0000 +++ b/COPYING Thu Jun 28 19:26:50 2012 +0000 @@ -1,4 +1,4 @@ -Copyright (c) 2007 - 2010, Pascal Volk +Copyright (c) 2007 - 2012, Pascal Volk All rights reserved. Redistribution and use in source and binary forms, with or without modification, diff -r c0e1fb1b0145 -r a4aead244f75 Configure.Dovecot_2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Configure.Dovecot_2 Thu Jun 28 19:26:50 2012 +0000 @@ -0,0 +1,205 @@ +# This document contains a minimal configuration for a vmm setup with +# Dovecot v2.x. +# +# You could save this file as local.conf in the dovecot configuration directory +# (commonly /etc/dovecot or /usr/local/etc/dovecot). +# When you want to use this file as your configuration file for Dovecot, make +# sure you have commented out the line "!include conf.d/*.conf". The last line +# "!include_try local.conf" is sufficient. +# +# Otherwise you have to apply the following settings to the configuration files +# in the conf.d directory. + +### +# dovecot.conf +### +protocols = imap lmtp +# uncomment if your users should be able to manage their sieve scripts +#protocols = imap lmtp sieve + +# uncomment if you want to use the quota plugin +#dict { +# quota = pgsql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext +#} + +### +# conf.d/10-auth.conf +### +auth_mechanisms = plain login cram-md5 +passdb { + driver = sql + args = /usr/local/etc/dovecot/dovecot-sql.conf.ext +} +userdb { + driver = sql + args = /usr/local/etc/dovecot/dovecot-sql.conf.ext +} +#!include auth-system.conf.ext + +### +# conf.d/10-mail.conf +### +first_valid_gid = 70000 +first_valid_uid = 70000 +mail_access_groups = dovemail +mail_location = maildir:~/Maildir + +# uncomment if you want to use the quota plugin +#mail_plugins = quota + +### +# conf.d/10-master.conf +### + +# if you don't want to use secure imap, you have to disable the imaps listener +##service imap-login { +## inet_listener imaps { +## port = 0 +## } +##} + +service lmtp { + unix_listener /var/spool/postfix/private/dovecot-lmtp { + user = postfix + group = postfix + mode = 0600 + } +} + +service auth { + user = doveauth + unix_listener auth-userdb { + } + unix_listener /var/spool/postfix/private/dovecot-auth { + user = postfix + group = postfix + mode = 0600 + } +} + +service auth-worker { + unix_listener auth-worker { + user = doveauth + group = $default_internal_user + mode = 0660 + } + user = doveauth +} + +service dict { + unix_listener dict { + group = dovemail + mode = 0660 + } +} + +### +# conf.d/10-ssl.conf +### +# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt> +#ssl = yes + +ssl_cert = </etc/ssl/certs/dovecot.pem +ssl_key = </etc/ssl/private/dovecot.pem + +# if you want to disable SSL/TLS, you have set 'ssl = no' and disable the +# imaps listener in conf.d/10-master.conf + +### +# conf.d/15-lda.conf +### +postmaster_address = pos...@YO... +recipient_delimiter = + +protocol lda { + # uncomment if you want to use the quota plugin + #mail_plugins = $mail_plugins + # uncomment if you want to use the quota and sieve plugins + #mail_plugins = $mail_plugins sieve +} + +### +# conf.d/20-imap.conf +### +protocol imap { + # uncomment if you want to use the quota plugin + #mail_plugins = $mail_plugins imap_quota +} + +### +# conf.d/20-lmtp.conf +### +protocol lmtp { + # uncomment if you want to use the quota plugin + #mail_plugins = $mail_plugins + # uncomment if you want to use the quota and sieve plugins + #mail_plugins = $mail_plugins sieve +} + +### +# conf.d/90-quota.conf +### +# uncomment if you want to use the quota plugin +#plugin { +# quota = dict:user:%{uid}::proxy::quota +# quota_rule = *:storage=0:messages=0 +# quota_rule2 = Trash:storage=+100M +#} + +### +# conf.d/90-sieve.conf +### +# uncomment if you want to use sieve (and maybe managesieve) +#plugin { +# recipient_delimiter = + +# sieve = ~/.dovecot.sieve +# sieve_dir = ~/sieve +#} + +############################################################################### +# end of local configuration # +############################################################################### + + +### +# etc/dovecot/dovecot-sql.conf.ext +### +# apply this settings to your dovecot-sql.conf.ext + +#driver = pgsql +#connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS +# +#password_query = \ +# SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls +# +## uncomment this user_query if you want to use the quota plugin +#user_query = \ +# SELECT home, uid, gid, mail, quota_rule FROM dovecotquotauser('%Ln', '%Ld') +## otherwise uncomment the following user_query +#user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld') +# +#iterate_query = \ +# SELECT local_part AS username, domain_name.domainname AS domain \ +# FROM users \ +# LEFT JOIN domain_data USING (gid) \ +# LEFT JOIN domain_name USING (gid) + + +### +# etc/dovecot/dovecot-dict-sql.conf.ext +### +# if you want to use the quota plugin add this lines to your +# dovecot-dict-sql.conf.ext + +#connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS +#map { +# pattern = priv/quota/storage +# table = userquota +# username_field = uid +# value_field = bytes +#} +#map { +# pattern = priv/quota/messages +# table = userquota +# username_field = uid +# value_field = messages +#} diff -r c0e1fb1b0145 -r a4aead244f75 INSTALL --- a/INSTALL Mon Nov 07 03:22:15 2011 +0000 +++ b/INSTALL Thu Jun 28 19:26:50 2012 +0000 @@ -1,69 +1,104 @@ Installation Prerequisites You should already have installed and configured Postfix, Dovecot and PostgreSQL. -You have to install Python and pyPgSQL* to use the Virtual Mail Manager. -If you want to store the passwords as PLAIN-MD4 digest you have also to install -python-crypto <http://www.amk.ca/python/code/crypto.html>. -* = http://pypgsql.sourceforge.net/ (Debian: python-pgsql) +The Virtual Mail Manager depends on: + - Python (>= 2.4.0) + - Psycopg 2¹ or pyPgSQL² + +If you are using Python <= 2.5.0: + - if you want to store your users' passwords as PLAIN-MD4 digest in + the database, vmm will try to use Crypto.Hash.MD4 from PyCrypto³. + - if you are using Dovecot >= v1.1.0 and you want to store your users' + passwords as SHA256 or SSHA256 hashes, vmm will try to use + Crypto.Hash.SHA256 from PyCrypto². For SHA256/SSHA256 you should have + at least use PyCrypto in version 2.1.0alpha1. + + When the Crypto.Hash module couldn't be imported, vmm will use + dovecotpw/doveadm, if the misc.password_scheme setting in the vmm.cfg + is set to PLAIN-MD4, SHA256 or SSHA256 + +[1] Psycopg: <http://initd.org/psycopg/> (Debian: python-psycopg2) +[2] pyPgSQL: <http://pypgsql.sourceforge.net/> (Debian: python-pgsql) +[3] PyCrypto: <http://www.pycrypto.org/> (Debian: python-crypto) + + +Create additionally a user and groups for improved security + We will create the system user `doveauth'. This user is used in the + authentication process. On a Debian GNU/Linux System use this command: + + adduser --system --home /nonexistent --no-create-home --group \ + --disabled-login --gecos "Dovecot IMAP/POP3 authentication user" \ + doveauth + + This will create the doveauth user and group. + For Dovecot >= 2.0 we create also the group `dovemail'. Dovecot will assign + this group to all Dovecot processes. + On a Debian GNU/Linux bases system run: + + addgroup --system dovemail Configuring PostgreSQL +(for more details see: http://vmm.localdomain.org/PreparingPostgreSQL) -* /etc/postgresql/8.2/main/pg_hba.conf +* /etc/postgresql/8.4/main/pg_hba.conf + [ if you prefer to connect via TCP/IP ] # IPv4 local connections: host mailsys +mailsys 127.0.0.1/32 md5 + [ if you want to connect through a local Unix-domain socket ] + # "local" is for Unix domain socket connections only + local mailsys +mailsys md5 # reload configuration - /etc/init.d/postgresql-8.2 force-reload + /etc/init.d/postgresql-8.4 force-reload -* Create a DB user if necessary: |
|
From: <nev...@us...> - 2012-06-28 19:28:42
|
details: http://hg.localdomain.org/vmm/rev/28230a8230bf changeset: 570:28230a8230bf user: Pascal Volk date: Thu Jun 28 19:23:24 2012 +0000 description: Close v0.6.x branch. |
|
From: <nev...@us...> - 2012-06-28 18:48:57
|
details: http://hg.localdomain.org/vmm/rev/54a84a311654 changeset: 569:54a84a311654 user: Pascal Volk date: Thu Jun 28 18:48:37 2012 +0000 description: vmm: Don't insert the module directory into sys.path by default. Doesn't make much sense, if the code is installed inside sys.path. diffstat: vmm | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diffs (16 lines): diff -r 14abdd04ddf5 -r 54a84a311654 vmm --- a/vmm Thu Jun 28 18:33:32 2012 +0000 +++ b/vmm Thu Jun 28 18:48:37 2012 +0000 @@ -9,7 +9,10 @@ if __name__ == '__main__': # replace the script's cwd (/usr/local/sbin) with our module dir - # (the location of the VirtualMailManager directory) - sys.path[0] = '/usr/local/lib/vmm' + # (the location of the VirtualMailManager directory) - if it is + # not in sys.path + #sys.path[0] = '/usr/local/lib/vmm' + # Otherwise just remove /usr/local/sbin from sys.path + sys.path.remove(sys.path[0]) from VirtualMailManager.cli.main import run sys.exit(run(sys.argv)) |
|
From: <nev...@us...> - 2012-06-28 18:33:48
|
details: http://hg.localdomain.org/vmm/rev/14abdd04ddf5 changeset: 568:14abdd04ddf5 user: Pascal Volk date: Thu Jun 28 18:33:32 2012 +0000 description: Updated copyright notices to include the year 2012. diffstat: COPYING | 2 +- VirtualMailManager/__init__.py | 2 +- VirtualMailManager/account.py | 2 +- VirtualMailManager/alias.py | 2 +- VirtualMailManager/aliasdomain.py | 2 +- VirtualMailManager/cli/__init__.py | 2 +- VirtualMailManager/cli/config.py | 2 +- VirtualMailManager/cli/handler.py | 2 +- VirtualMailManager/cli/main.py | 2 +- VirtualMailManager/cli/subcommands.py | 2 +- VirtualMailManager/common.py | 2 +- VirtualMailManager/config.py | 2 +- VirtualMailManager/constants.py | 4 ++-- VirtualMailManager/domain.py | 2 +- VirtualMailManager/emailaddress.py | 2 +- VirtualMailManager/errors.py | 2 +- VirtualMailManager/ext/__init__.py | 2 +- VirtualMailManager/ext/postconf.py | 2 +- VirtualMailManager/handler.py | 2 +- VirtualMailManager/mailbox.py | 2 +- VirtualMailManager/maillocation.py | 2 +- VirtualMailManager/network.py | 2 +- VirtualMailManager/password.py | 2 +- VirtualMailManager/pycompat/__init__.py | 2 +- VirtualMailManager/pycompat/hashlib.py | 2 +- VirtualMailManager/quotalimit.py | 2 +- VirtualMailManager/relocated.py | 2 +- VirtualMailManager/serviceset.py | 2 +- VirtualMailManager/transport.py | 2 +- setup.py | 2 +- update_config.py | 2 +- vmm | 2 +- 32 files changed, 33 insertions(+), 33 deletions(-) diffs (truncated from 331 to 300 lines): diff -r 11ed67ee7ebb -r 14abdd04ddf5 COPYING --- a/COPYING Thu Jun 28 18:03:48 2012 +0000 +++ b/COPYING Thu Jun 28 18:33:32 2012 +0000 @@ -1,4 +1,4 @@ -Copyright (c) 2007 - 2011, Pascal Volk +Copyright (c) 2007 - 2012, Pascal Volk All rights reserved. Redistribution and use in source and binary forms, with or without modification, diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/__init__.py --- a/VirtualMailManager/__init__.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/__init__.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/account.py --- a/VirtualMailManager/account.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/account.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.account diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/alias.py --- a/VirtualMailManager/alias.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/alias.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.alias diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/aliasdomain.py --- a/VirtualMailManager/aliasdomain.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/aliasdomain.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.aliasdomain diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/cli/__init__.py --- a/VirtualMailManager/cli/__init__.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/cli/__init__.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.cli diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/cli/config.py --- a/VirtualMailManager/cli/config.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/cli/config.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.cli.config diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/cli/handler.py --- a/VirtualMailManager/cli/handler.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/cli/handler.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.cli.handler diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/cli/main.py --- a/VirtualMailManager/cli/main.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/cli/main.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.cli.main diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/cli/subcommands.py --- a/VirtualMailManager/cli/subcommands.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/cli/subcommands.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.cli.subcommands diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/common.py --- a/VirtualMailManager/common.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/common.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.common diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/config.py --- a/VirtualMailManager/config.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/config.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.config diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/constants.py --- a/VirtualMailManager/constants.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/constants.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.constants @@ -18,7 +18,7 @@ RELDATE = '2009-09-09' VERSION = '0.5.2' __author__ = AUTHOR -__copyright__ = 'Copyright (c) 2007-2011 %s' % __author__ +__copyright__ = 'Copyright (c) 2007-2012 %s' % __author__ __date__ = RELDATE __version__ = VERSION diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/domain.py --- a/VirtualMailManager/domain.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/domain.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.domain diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/emailaddress.py --- a/VirtualMailManager/emailaddress.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/emailaddress.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.emailaddress diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/errors.py --- a/VirtualMailManager/errors.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/errors.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.errors diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/ext/__init__.py --- a/VirtualMailManager/ext/__init__.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/ext/__init__.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. # package placeholder # diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/ext/postconf.py --- a/VirtualMailManager/ext/postconf.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/ext/postconf.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.ext.postconf diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/handler.py --- a/VirtualMailManager/handler.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/handler.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2007 - 2011, Pascal Volk +# Copyright (c) 2007 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.handler diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/mailbox.py --- a/VirtualMailManager/mailbox.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/mailbox.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.mailbox diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/maillocation.py --- a/VirtualMailManager/maillocation.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/maillocation.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.maillocation diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/network.py --- a/VirtualMailManager/network.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/network.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2011, Pascal Volk +# Copyright (c) 2011 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.network diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/password.py --- a/VirtualMailManager/password.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/password.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.password diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/pycompat/__init__.py --- a/VirtualMailManager/pycompat/__init__.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/pycompat/__init__.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/pycompat/hashlib.py --- a/VirtualMailManager/pycompat/hashlib.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/pycompat/hashlib.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2010 - 2011, Pascal Volk +# Copyright (c) 2010 - 2012, Pascal Volk # See COPYING for distribution information. """ diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/quotalimit.py --- a/VirtualMailManager/quotalimit.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/quotalimit.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2011, Pascal Volk +# Copyright (c) 2011 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.quotalimit diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/relocated.py --- a/VirtualMailManager/relocated.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/relocated.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.relocated diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/serviceset.py --- a/VirtualMailManager/serviceset.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/serviceset.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # coding: utf-8 -# Copyright (c) 2011, Pascal Volk +# Copyright (c) 2011 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.serviceset diff -r 11ed67ee7ebb -r 14abdd04ddf5 VirtualMailManager/transport.py --- a/VirtualMailManager/transport.py Thu Jun 28 18:03:48 2012 +0000 +++ b/VirtualMailManager/transport.py Thu Jun 28 18:33:32 2012 +0000 @@ -1,5 +1,5 @@ # -*- coding: UTF-8 -*- -# Copyright (c) 2008 - 2011, Pascal Volk +# Copyright (c) 2008 - 2012, Pascal Volk # See COPYING for distribution information. """ VirtualMailManager.transport diff -r 11ed67ee7ebb -r 14abdd04ddf5 setup.py --- a/setup.py Thu Jun 28 18:03:48 2012 +0000 |
|
From: <nev...@us...> - 2012-06-28 18:04:04
|
details: http://hg.localdomain.org/vmm/rev/11ed67ee7ebb changeset: 567:11ed67ee7ebb user: Pascal Volk date: Thu Jun 28 18:03:48 2012 +0000 description: TODO: Removed "listpwschemes" entry. Was done with changeset a64c1b5e08b4 diffstat: TODO | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diffs (10 lines): diff -r 007786e58fb7 -r 11ed67ee7ebb TODO --- a/TODO Thu Jun 28 17:51:23 2012 +0000 +++ b/TODO Thu Jun 28 18:03:48 2012 +0000 @@ -1,6 +1,3 @@ -subcommand for displaying support crypt algorithms. - - - Aliases - avoid looping aliases |
|
From: <nev...@us...> - 2012-06-28 17:51:44
|
details: http://hg.localdomain.org/vmm/rev/007786e58fb7 changeset: 566:007786e58fb7 user: Pascal Volk date: Thu Jun 28 17:51:23 2012 +0000 description: UPGRADE: Updated documentation. diffstat: UPGRADE | 94 ++++++++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 59 insertions(+), 35 deletions(-) diffs (122 lines): diff -r a75923ce2842 -r 007786e58fb7 UPGRADE --- a/UPGRADE Thu Jun 28 16:16:01 2012 +0000 +++ b/UPGRADE Thu Jun 28 17:51:23 2012 +0000 @@ -1,59 +1,83 @@ -If you still have installed vmm 0.3.x you have to proceed this step first: +If you still have installed vmm 0.4.x you have to proceed this step first: - * upgrade your vmm installation to version 0.4-r41 + * upgrade your vmm installation to version 0.5.2 -If you have installed vmm 0.4/0.4-r41 you have to proceed this steps: +If you have installed vmm 0.5.2 you have to proceed this steps: * stop Postfix and Dovecot * backup/dump your database. * backup/dump your database! * start psql and connect to the appropriate database - (ex. psql mailsys mailsys vmm -W -h localhost) - * update the database: \i update_tables_0.4.x-0.5.pgsql - * GRANT SELECT ON postfix_alias TO postfix; - ^^^^^^^^ <- your Postfix db user + (ex. psql mailsys vmm -W -h 127.0.0.1) + * update the database, + - Dovecot < 1.2.0 + \i vmm-x.y.z/pgsql/update_tables_0.5.x-0.6.pgsql + - Dovecot >= 1.2.0, 2.0.0 and 2.1.0 + \i vmm-x.y.z/pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql + * Set database permissions. + (see python set-permissions.py -h for details) + python vmm-x.y.z/pgsql/set-permissions.py -a -H 127.0.0.1 -U vmm - Dovecot v1.2.x - -> Are you already using Dovecot v1.2.x? - * update the database for Dovecot v1.2.x: - \i update_tables_0.5.x_for_dovecot-1.2.x.pgsql - * GRANT SELECT ON dovecot_password TO dovecot; - ^^^^^^^^ <- your Dovecot db user + /!\ Important note /!\ - * When you are using the SQL function »dovecotpassword()« in your - dovecot-sql.conf, update it also: - \i update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql + All the views (dovecot_* and postfix_*) have been replaced by database + functions. So you have to adjust all your postfix/pgsql-*.cf files and + also your /etc/dovecot/dovecot-sql.conf or + /etc/dovecot/dovecot-sql.conf.ext. + (See the vmm-x.y.z postfix/pgsql-*.cf files and INSTALL/Configure.Dovecot_2 + files for the new query.) - * You have also to adjust the permissions of the set-uid deliver copy: - on BSD: - chgrp nobody /usr/local/lib/dovecot/deliver - on Linux: - chgrp nogroup /usr/local/lib/dovecot/deliver - chmod u+s,o-rwx /usr/local/lib/dovecot/deliver - - * Check the master.cf from Postfix. - In prior setups the service dovecot was configured slightly different. - If you have set the command attribute 'user' to 'nobody:mail', so - either remove the group mail or replace it with the group nobody - or nogroup. (see command output from: id -ng nobody) - - e.g.: flags=DRhu user=nobody argv=/usr/local/lib/dovecot/deliver … * execute upgrade.sh + This will also upgrade your vmm.cfg and apply the following modifications: - * start Dovecot and Postfix + old new + ------------------------------------------------------------ + domdir.mode -> domain.directory_mode + domdir.delete -> domain.delete_directory + domdir.base -> misc.base_directory + domdir -> _section domdir deleted_ + maildir.mode -> account.directory_mode + maildir.diskusage -> account.disk_usage + maildir.delete -> account.delete_directory + maildir.folders -> mailbox.folders + maildir.name -> mailbox.root + maildir -> _section maildir deleted_ + misc.forcedel -> domain.force_deletion + misc.transport -> domain.transport + misc.passwdscheme -> misc.password_scheme + misc.dovecotvers -> misc.dovecot_version (12 -> 1.2.11) + misc.gid_mail -> /dev/null -If you have installed vmm 0.5.x: + services.smtp -> domain.smtp + services.pop3 -> domain.pop3 + services.imap -> domain.imap + services.sieve -> domain.sieve + services -> _section services deleted_ - * execute upgrade.sh + _NEW_.random_password -> account.random_password + _NEW_.password_length -> account.password_length + _NEW_.auto_postmaster -> domain.auto_postmaster + _NEW_.quota_bytes -> domain.quota_bytes + _NEW_.quota_messages -> domain.quota_messages + _NEW_.module -> database.module + _NEW_.port -> database.port + _NEW_.sslmode -> database.sslmode + _NEW_.format -> mailbox.format + _NEW_.crypt_blowfish_rounds -> misc.crypt_blowfish_rounds + _NEW_.crypt_sha256_rounds -> misc.crypt_sha256_rounds + _NEW_.crypt_sha512_rounds -> misc.crypt_sha512_rounds - -> Are you already using Dovecot v1.2.x? - See a few lines above. + config.done -> /dev/null + config -> _section config deleted_ + + + * start Dovecot and Postfix again else |
|
From: <nev...@us...> - 2012-06-28 16:16:21
|
details: http://hg.localdomain.org/vmm/rev/a75923ce2842 changeset: 565:a75923ce2842 user: Pascal Volk date: Thu Jun 28 16:16:01 2012 +0000 description: VMM/cli/subcommands: Replaced the keyword `default' by `domain'. Patch by Martin F. Krafft diffstat: VirtualMailManager/cli/subcommands.py | 10 +++++----- man/de/man1/vmm.1 | 14 +++++++------- man/man1/vmm.1 | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diffs (128 lines): diff -r 55148bc6348e -r a75923ce2842 VirtualMailManager/cli/subcommands.py --- a/VirtualMailManager/cli/subcommands.py Wed Jun 27 21:36:36 2012 +0000 +++ b/VirtualMailManager/cli/subcommands.py Thu Jun 28 16:16:01 2012 +0000 @@ -673,7 +673,7 @@ ctx.scmd) elif ctx.argc < 4: usage(EX_MISSING_ARGS, _(u'Missing storage value.'), ctx.scmd) - if ctx.args[3] != 'default': + if ctx.args[3] != 'domain': try: bytes_ = size_in_bytes(ctx.args[3]) except (ValueError, TypeError): @@ -701,7 +701,7 @@ if ctx.argc >= 4: services.extend([service.lower() for service in ctx.args[3:]]) unknown = [service for service in services if service not in SERVICES] - if unknown and ctx.args[3] != 'default': + if unknown and ctx.args[3] != 'domain': usage(INVALID_ARGUMENT, _(u'Invalid service arguments: %s') % ' '.join(unknown), ctx.scmd) ctx.hdlr.user_services(ctx.args[2].lower(), *services) @@ -779,14 +779,14 @@ 'address [password]', _(u'update the password for the given address')), 'userquota': cmd('userquota', 'uq', user_quota, - 'address storage [messages] | address default', + 'address storage [messages] | address domain', _(u'update the quota limit for the given address')), 'userservices': cmd('userservices', 'us', user_services, - 'address [service ...] | address default', + 'address [service ...] | address domain', _(u'enables the specified services and disables all ' u'not specified services')), 'usertransport': cmd('usertransport', 'ut', user_transport, - 'address transport | address default', + 'address transport | address domain', _(u'update the transport of the given address')), 'usernote': cmd('usernote', 'uo', user_note, 'address note', diff -r 55148bc6348e -r a75923ce2842 man/de/man1/vmm.1 --- a/man/de/man1/vmm.1 Wed Jun 27 21:36:36 2012 +0000 +++ b/man/de/man1/vmm.1 Thu Jun 28 16:16:01 2012 +0000 @@ -766,7 +766,7 @@ .B 0 (null) als Anzahl von Nachrichten angewendet werden. .PP -Anstelle einer Limite, bewirkt das Wort 'default', daß die Limite des +Anstelle einer Limite, bewirkt das Wort 'domain', daß die Limite des Kontos gelöscht wird und somit wieder der in der Domain gespeicherte Wert für das Konto gilt. .PP @@ -774,7 +774,7 @@ .PP .nf .B vmm userquota d....@ex... 750m -.B vmm userquote d....@ex... default +.B vmm userquote d....@ex... domain .fi .\" ------------------------------------ .SS userservices (us) @@ -787,7 +787,7 @@ Der Zugriff auf alle nicht genannten Services wird dem Anwender, mit der angegebenen Adresse, verwehrt werden. .PP -Anstelle einer Liste, bewirkt das Wort 'default', daß die benutzerspezifische +Anstelle einer Liste, bewirkt das Wort 'domain', daß die benutzerspezifische Liste gelöscht wird und somit wieder die in der Domain gespeicherte Liste für das Konto gilt. .PP @@ -795,7 +795,7 @@ .PP .nf .B vmm userservices d....@ex... SMTP IMAP -.B vmm userservices d....@ex... default +.B vmm userservices d....@ex... domain .\" ------------------------------------ .SS usertransport (ut) .BI "vmm usertransport" " address transport" @@ -806,7 +806,7 @@ .PP Wird als .I transport -das Wort 'default' übergeben, so wird der explizite Transport des Kontos +das Wort 'domain' übergeben, so wird der explizite Transport des Kontos wieder gelöscht und der in der Domain gespeicherte Wert benutzt. .PP Beispiel: @@ -820,8 +820,8 @@ .nf .B vmm ut d....@ex... \(dqretry:4.0.0 Mailbox being migrated\(dq # Konvertieren der Mailbox … -# … danach den Transport auf den Domain-Default setzen -.B vmm usertransport d....@ex... default +# … danach den Transport auf den Domainwert setzen +.B vmm usertransport d....@ex... domain .fi .\" ----------------------------------------------------------------------- .SH ALIAS UNTERBEFEHLE diff -r 55148bc6348e -r a75923ce2842 man/man1/vmm.1 --- a/man/man1/vmm.1 Wed Jun 27 21:36:36 2012 +0000 +++ b/man/man1/vmm.1 Thu Jun 28 16:16:01 2012 +0000 @@ -736,7 +736,7 @@ .PP Instead of .I transport -pass 'default' to remove the account\-specific override, causing the +pass 'domain' to remove the account\-specific override, causing the domain's value to be in effect. .PP Example: @@ -757,7 +757,7 @@ .PP Instead of .I transport -pass 'default' to remove the account\-specific override, causing the +pass 'domain' to remove the account\-specific override, causing the domain's value to be in effect. .PP Example: @@ -774,7 +774,7 @@ .PP Instead of .I transport -pass 'default' to remove the account\-specific override, causing the +pass 'domain' to remove the account\-specific override, causing the domain's value to be in effect. .PP Example: |
|
From: <nev...@us...> - 2012-06-27 21:36:51
|
details: http://hg.localdomain.org/vmm/rev/55148bc6348e changeset: 564:55148bc6348e user: Pascal Volk date: Wed Jun 27 21:36:36 2012 +0000 description: INSTALL: Added description how to create additional dove* user/group. `doveauth' user and group for the authentication process and the group `dovemail' for mail related Dovecot processes. diffstat: Configure.Dovecot_2 | 11 ++++++----- INSTALL | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diffs (77 lines): diff -r b17a9d7a59ae -r 55148bc6348e Configure.Dovecot_2 --- a/Configure.Dovecot_2 Wed Jun 27 20:20:00 2012 +0000 +++ b/Configure.Dovecot_2 Wed Jun 27 21:36:36 2012 +0000 @@ -41,6 +41,7 @@ ### first_valid_gid = 70000 first_valid_uid = 70000 +mail_access_groups = dovemail mail_location = maildir:~/Maildir # uncomment if you want to use the quota plugin @@ -66,7 +67,7 @@ } service auth { - user = nobody + user = doveauth unix_listener auth-userdb { } unix_listener /var/spool/postfix/private/dovecot-auth { @@ -78,17 +79,17 @@ service auth-worker { unix_listener auth-worker { - user = nobody + user = doveauth group = $default_internal_user mode = 0660 } - user = nobody + user = doveauth } service dict { unix_listener dict { - # we need mode 0666, because we have a GID/domain and a UID/user - mode = 0666 + group = dovemail + mode = 0660 } } diff -r b17a9d7a59ae -r 55148bc6348e INSTALL --- a/INSTALL Wed Jun 27 20:20:00 2012 +0000 +++ b/INSTALL Wed Jun 27 21:36:36 2012 +0000 @@ -23,6 +23,22 @@ [3] PyCrypto: <http://www.pycrypto.org/> (Debian: python-crypto) +Create additionally a user and groups for improved security + We will create the system user `doveauth'. This user is used in the + authentication process. On a Debian GNU/Linux System use this command: + + adduser --system --home /nonexistent --no-create-home --group \ + --disabled-login --gecos "Dovecot IMAP/POP3 authentication user" \ + doveauth + + This will create the doveauth user and group. + For Dovecot >= 2.0 we create also the group `dovemail'. Dovecot will assign + this group to all Dovecot processes. + On a Debian GNU/Linux bases system run: + + addgroup --system dovemail + + Configuring PostgreSQL (for more details see: http://vmm.localdomain.org/PreparingPostgreSQL) @@ -96,7 +112,7 @@ userdb sql { args = /etc/dovecot/dovecot-sql.conf } - user = nobody + user = doveauth socket listen { master { path = /var/run/dovecot/auth-master |
|
From: <nev...@us...> - 2012-06-27 20:20:39
|
details: http://hg.localdomain.org/vmm/rev/b17a9d7a59ae changeset: 563:b17a9d7a59ae user: Pascal Volk date: Wed Jun 27 20:20:00 2012 +0000 description: INSTALL: Updated documentation. diffstat: INSTALL | 73 +++++++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 44 insertions(+), 29 deletions(-) diffs (165 lines): diff -r b5bb7b34e831 -r b17a9d7a59ae INSTALL --- a/INSTALL Wed Jun 27 20:15:06 2012 +0000 +++ b/INSTALL Wed Jun 27 20:20:00 2012 +0000 @@ -37,20 +37,20 @@ # reload configuration /etc/init.d/postgresql-8.4 force-reload -* Create a DB user if necessary: - DB Superuser: +* Create a database superuser if necessary: + # as root run: su - postgres + # if you have sudo privileges run: sudo su - postgres + # create your superuser, which will be able to create users and databases createuser -s -d -r -E -e -P $USERNAME - DB User: - createuser -d -E -e -P $USERNAME -* Create Database and db users for vmm, Postfix and Dovecot +* As superuser create the database and db users for vmm, Postfix and Dovecot connecting to PostgreSQL: psql template1 # create users, group and the database - CREATE USER vmm ENCRYPTED PASSWORD 'DB PASSWORD for vmm'; - CREATE USER dovecot ENCRYPTED password 'DB PASSWORD for Dovecot'; - CREATE USER postfix ENCRYPTED password 'DB PASSWORD for Postfix'; + CREATE ROLE vmm LOGIN ENCRYPTED PASSWORD 'DB PASSWORD for vmm'; + CREATE ROLE dovecot LOGIN ENCRYPTED password 'DB PASSWORD for Dovecot'; + CREATE ROLE postfix LOGIN ENCRYPTED password 'DB PASSWORD for Postfix'; CREATE ROLE mailsys WITH USER postfix, dovecot, vmm; CREATE DATABASE mailsys WITH OWNER vmm ENCODING 'UTF8'; \q @@ -58,18 +58,16 @@ # connect to the new database psql mailsys vmm -W -h 127.0.0.1 # either import the database structure for Dovecot v1.0.x/v1.1.x - \i /path/to/create_tables.pgsql - # or import the database structure for Dovecot v1.2.x - \i /path/to/create_tables-dovecot-1.2.x.pgsql - - # set permissions - GRANT SELECT ON dovecot_password, dovecot_user TO dovecot; - GRANT SELECT ON postfix_alias, postfix_gid, postfix_maildir, - postfix_relocated, postfix_transport, postfix_uid TO postfix; - + \i vmm-y.x.z/pgsql/create_tables.pgsql + # or import the database structure for Dovecot v1.2.x/v2.x + \i vmm-x.y.z/pgsql/create_tables-dovecot-1.2.x.pgsql # leave psql \q + # set permissions for your Dovecot and Postfix users + # see python set-permissions.py -h for details + python vmm-x.y.z/pgsql/set-permissions.py -a -H 127.0.0.1 -U vmm + Create directory for your mails mkdir /srv/mail cd /srv/mail/ @@ -77,7 +75,9 @@ chmod 771 /srv/mail chmod 751 /srv/mail/* -Configuring Dovecot + +For Dovecot >= 2.0 read the file Configure.Dovecot_2 +Configuring Dovecot v1.x * /etc/dovecot/dovecot.conf # all your other settings @@ -103,7 +103,7 @@ mode = 0600 } client { - path = /var/spool/postfix/private/auth + path = /var/spool/postfix/private/dovecot-auth mode = 0660 user = postfix group = postfix @@ -114,12 +114,15 @@ * /etc/dovecot/dovecot-sql.conf driver = pgsql connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS - default_pass_scheme = PLAIN - password_query = SELECT "user", password FROM dovecot_password WHERE "user"='%Lu' AND %Ls - user_query = SELECT home, uid, gid, mail FROM dovecot_user WHERE userid = '%Lu' + default_pass_scheme = CRAM-MD5 + password_query = SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls + user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld') Provide a root SETUID copy of Dovecot's deliver agent for Postfix +/!\ Only required with Dovecot v.1.x. + With Dovecot >= v2.0 use Dovecot's lmtp! + mkdir -p /usr/local/lib/dovecot chmod 700 /usr/local/lib/dovecot chown nobody /usr/local/lib/dovecot @@ -133,7 +136,8 @@ Configuring Postfix's master.cf - + +/!\ Only required with Dovecot v.1.x. # Add Dovecot's deliver agent dovecot unix - n n - - pipe flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension} @@ -144,23 +148,28 @@ # relocated users from the database #relocated_maps = pgsql:/etc/postfix/pgsql-relocated_maps.cf + # transport settings from our database + transport_maps = pgsql:/etc/postfix/pgsql-transport_maps.cf + # virtual domains virtual_mailbox_domains = pgsql:/etc/postfix/pgsql-virtual_mailbox_domains.cf virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual_alias_maps.cf - transport_maps = pgsql:/etc/postfix/pgsql-transport.cf virtual_minimum_uid = 70000 virtual_uid_maps = pgsql:/etc/postfix/pgsql-virtual_uid_maps.cf virtual_gid_maps = pgsql:/etc/postfix/pgsql-virtual_gid_maps.cf virtual_mailbox_base = / virtual_mailbox_maps = pgsql:/etc/postfix/pgsql-virtual_mailbox_maps.cf - # dovecot LDA - dovecot_destination_recipient_limit = 1 - virtual_transport = dovecot: + # dovecot LDA (only recommended with Dovecot v1.x) + #dovecot_destination_recipient_limit = 1 + #virtual_transport = dovecot: + + # dovecot lmtp + virtual_transport = lmtp:unix:private/dovecot-lmtp # dovecot SASL smtpd_sasl_type = dovecot - smtpd_sasl_path = private/auth + smtpd_sasl_path = private/dovecot-auth smtpd_sasl_auth_enable = yes # Keep smtpd_sasl_local_domain identical to Dovecot's auth_default_realm: # empty. Both are empty by default. Let it commented out. @@ -178,7 +187,7 @@ Installing the Virtual Mail Manager and configure the rest - Installing from Mercurial or vmm-x.y.z.tar.bz2 + Installing from Mercurial or vmm-x.y.z.tar.gz after cloning from the hg repo or extracting the archive change into the new directory and type: ./install.sh @@ -187,8 +196,14 @@ reload postfix # configure the Virtual Mail Manager + # vmm.cfg(5) - configuration file for vmm + # + # For Dovecot v1.x use 'dovecot:' as domain.transport + # When using Dovecot v2.x use 'lmtp:unix:private/dovecot-lmtp' as + # domain.transport vmm configure # for help type + # vmm(1) - command line tool to manage email domains/accounts/aliases vmm help |
|
From: <nev...@us...> - 2012-06-27 20:20:14
|
details: http://hg.localdomain.org/vmm/rev/b5bb7b34e831 changeset: 562:b5bb7b34e831 user: Pascal Volk date: Wed Jun 27 20:15:06 2012 +0000 description: Configure.Dovecot_2: Added configuration documentation for Dovecot_2 >= 2.0. diffstat: Configure.Dovecot_2 | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++ install.sh | 2 +- upgrade.sh | 2 +- 3 files changed, 206 insertions(+), 2 deletions(-) diffs (232 lines): diff -r b0165b7af7a3 -r b5bb7b34e831 Configure.Dovecot_2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Configure.Dovecot_2 Wed Jun 27 20:15:06 2012 +0000 @@ -0,0 +1,204 @@ +# This document contains a minimal configuration for a vmm setup with +# Dovecot v2.x. +# +# You could save this file as local.conf in the dovecot configuration directory +# (commonly /etc/dovecot or /usr/local/etc/dovecot). +# When you want to use this file as your configuration file for Dovecot, make +# sure you have commented out the line "!include conf.d/*.conf". The last line +# "!include_try local.conf" is sufficient. +# +# Otherwise you have to apply the following settings to the configuration files +# in the conf.d directory. + +### +# dovecot.conf +### +protocols = imap lmtp +# uncomment if your users should be able to manage their sieve scripts +#protocols = imap lmtp sieve + +# uncomment if you want to use the quota plugin +#dict { +# quota = pgsql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext +#} + +### +# conf.d/10-auth.conf +### +auth_mechanisms = plain login cram-md5 +passdb { + driver = sql + args = /usr/local/etc/dovecot/dovecot-sql.conf.ext +} +userdb { + driver = sql + args = /usr/local/etc/dovecot/dovecot-sql.conf.ext +} +#!include auth-system.conf.ext + +### +# conf.d/10-mail.conf +### +first_valid_gid = 70000 +first_valid_uid = 70000 +mail_location = maildir:~/Maildir + +# uncomment if you want to use the quota plugin +#mail_plugins = quota + +### +# conf.d/10-master.conf +### + +# if you don't want to use secure imap, you have to disable the imaps listener +##service imap-login { +## inet_listener imaps { +## port = 0 +## } +##} + +service lmtp { + unix_listener /var/spool/postfix/private/dovecot-lmtp { + user = postfix + group = postfix + mode = 0600 + } +} + +service auth { + user = nobody + unix_listener auth-userdb { + } + unix_listener /var/spool/postfix/private/dovecot-auth { + user = postfix + group = postfix + mode = 0600 + } +} + +service auth-worker { + unix_listener auth-worker { + user = nobody + group = $default_internal_user + mode = 0660 + } + user = nobody +} + +service dict { + unix_listener dict { + # we need mode 0666, because we have a GID/domain and a UID/user + mode = 0666 + } +} + +### +# conf.d/10-ssl.conf +### +# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt> +#ssl = yes + +ssl_cert = </etc/ssl/certs/dovecot.pem +ssl_key = </etc/ssl/private/dovecot.pem + +# if you want to disable SSL/TLS, you have set 'ssl = no' and disable the +# imaps listener in conf.d/10-master.conf + +### +# conf.d/15-lda.conf +### +postmaster_address = pos...@YO... +recipient_delimiter = + +protocol lda { + # uncomment if you want to use the quota plugin + #mail_plugins = $mail_plugins + # uncomment if you want to use the quota and sieve plugins + #mail_plugins = $mail_plugins sieve +} + +### +# conf.d/20-imap.conf +### +protocol imap { + # uncomment if you want to use the quota plugin + #mail_plugins = $mail_plugins imap_quota +} + +### +# conf.d/20-lmtp.conf +### +protocol lmtp { + # uncomment if you want to use the quota plugin + #mail_plugins = $mail_plugins + # uncomment if you want to use the quota and sieve plugins + #mail_plugins = $mail_plugins sieve +} + +### +# conf.d/90-quota.conf +### +# uncomment if you want to use the quota plugin +#plugin { +# quota = dict:user:%{uid}::proxy::quota +# quota_rule = *:storage=0:messages=0 +# quota_rule2 = Trash:storage=+100M +#} + +### +# conf.d/90-sieve.conf +### +# uncomment if you want to use sieve (and maybe managesieve) +#plugin { +# recipient_delimiter = + +# sieve = ~/.dovecot.sieve +# sieve_dir = ~/sieve +#} + +############################################################################### +# end of local configuration # +############################################################################### + + +### +# etc/dovecot/dovecot-sql.conf.ext +### +# apply this settings to your dovecot-sql.conf.ext + +#driver = pgsql +#connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS +# +#password_query = \ +# SELECT userid AS "user", password FROM dovecotpassword('%Ln', '%Ld') WHERE %Ls +# +## uncomment this user_query if you want to use the quota plugin +#user_query = \ +# SELECT home, uid, gid, mail, quota_rule FROM dovecotquotauser('%Ln', '%Ld') +## otherwise uncomment the following user_query +#user_query = SELECT home, uid, gid, mail FROM dovecotuser('%Ln', '%Ld') +# +#iterate_query = \ +# SELECT local_part AS username, domain_name.domainname AS domain \ +# FROM users \ +# LEFT JOIN domain_data USING (gid) \ +# LEFT JOIN domain_name USING (gid) + + +### +# etc/dovecot/dovecot-dict-sql.conf.ext +### +# if you want to use the quota plugin add this lines to your +# dovecot-dict-sql.conf.ext + +#connect = host=localhost dbname=mailsys user=dovecot password=$Dovecot_PASS +#map { +# pattern = priv/quota/storage +# table = userquota +# username_field = uid +# value_field = bytes +#} +#map { +# pattern = priv/quota/messages +# table = userquota +# username_field = uid +# value_field = messages +#} diff -r b0165b7af7a3 -r b5bb7b34e831 install.sh --- a/install.sh Wed Jun 27 13:11:28 2012 +0000 +++ b/install.sh Wed Jun 27 20:15:06 2012 +0000 @@ -16,7 +16,7 @@ else MANDIR=${PREFIX}/man fi -DOCS="ChangeLog COPYING INSTALL README" +DOCS="ChangeLog Configure.Dovecot_2 COPYING INSTALL NEWS README" INSTALL_OPTS="-g 0 -o 0 -p" INSTALL_OPTS_CF="-b -m 0640 -g ${PF_GID} -o 0 -p" diff -r b0165b7af7a3 -r b5bb7b34e831 upgrade.sh --- a/upgrade.sh Wed Jun 27 13:11:28 2012 +0000 +++ b/upgrade.sh Wed Jun 27 20:15:06 2012 +0000 @@ -15,7 +15,7 @@ else MANDIR=${PREFIX}/man fi -DOCS="ChangeLog COPYING NEWS INSTALL README" +DOCS="ChangeLog Configure.Dovecot_2 COPYING INSTALL NEWS README" INSTALL_OPTS="-g 0 -o 0 -p" |
|
From: <nev...@us...> - 2012-06-27 13:11:50
|
details: http://hg.localdomain.org/vmm/rev/b0165b7af7a3 changeset: 561:b0165b7af7a3 user: Pascal Volk date: Wed Jun 27 13:11:28 2012 +0000 description: VMM: The Python 2.4.x compatibility commit - part III. diffstat: VirtualMailManager/account.py | 15 +++++++++++---- VirtualMailManager/cli/subcommands.py | 6 +++++- 2 files changed, 16 insertions(+), 5 deletions(-) diffs (46 lines): diff -r 2662f4e17eb4 -r b0165b7af7a3 VirtualMailManager/account.py --- a/VirtualMailManager/account.py Wed Jun 27 12:46:27 2012 +0000 +++ b/VirtualMailManager/account.py Wed Jun 27 13:11:28 2012 +0000 @@ -251,15 +251,22 @@ self._prepare(MailLocation(self._dbh, mbfmt=cfg_dget('mailbox.format'), directory=cfg_dget('mailbox.root'))) dbc = self._dbh.cursor() + qid = ssid = tid = None + if self._qlimit: + qid = self._qlimit.qid + if self._services: + ssid = self._services.ssid + if self._transport: + tid = self._transport.tid dbc.execute('INSERT INTO users (local_part, passwd, uid, gid, mid, ' 'qid, ssid, tid, note) ' 'VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)', (self._addr.localpart, pwhash(self._passwd, user=self._addr), self._uid, - self._domain.gid, self._mail.mid, - self._qlimit.qid if self._qlimit else None, - self._services.ssid if self._services else None, - self._transport.tid if self._transport else None, + self._domain.gid, self._mail.mid, qid, ssid, tid, +# self._qlimit.qid if self._qlimit else None, +# self._services.ssid if self._services else None, +# self._transport.tid if self._transport else None, self._note)) self._dbh.commit() dbc.close() diff -r 2662f4e17eb4 -r b0165b7af7a3 VirtualMailManager/cli/subcommands.py --- a/VirtualMailManager/cli/subcommands.py Wed Jun 27 12:46:27 2012 +0000 +++ b/VirtualMailManager/cli/subcommands.py Wed Jun 27 13:11:28 2012 +0000 @@ -924,7 +924,11 @@ q_usage['percent'] = locale.format('%6.2f', 100. / limit * used, True) else: q_usage['percent'] = locale.format('%6.2f', 0, True) - fmt = format_domain_default if domaindefault else lambda s: s + # Py25: fmt = format_domain_default if domaindefault else lambda s: s + if domaindefault: + fmt = format_domain_default + else: + fmt = lambda s: s return fmt(_(u'[%(percent)s%%] %(used)s/%(limit)s') % q_usage) |
|
From: <nev...@us...> - 2012-06-27 12:46:40
|
details: http://hg.localdomain.org/vmm/rev/2662f4e17eb4 changeset: 560:2662f4e17eb4 user: Pascal Volk date: Wed Jun 27 12:46:27 2012 +0000 description: VMM/account: Check the account's transport only when we have a transport. diffstat: VirtualMailManager/account.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r cc0f67f99780 -r 2662f4e17eb4 VirtualMailManager/account.py --- a/VirtualMailManager/account.py Wed Jun 27 12:18:53 2012 +0000 +++ b/VirtualMailManager/account.py Wed Jun 27 12:46:27 2012 +0000 @@ -124,7 +124,7 @@ 'mbfmt': maillocation.mbformat, 'version': version_str(maillocation.dovecot_version)}, INVALID_MAIL_LOCATION) - if not maillocation.postfix and \ + if self._transport and not maillocation.postfix and \ self._transport.transport.lower() in ('virtual:', 'virtual'): raise AErr(_(u"Invalid transport '%(transport)s' for mailbox " u"format '%(mbfmt)s'.") % |
|
From: <nev...@us...> - 2012-06-27 12:44:15
|
details: http://hg.localdomain.org/vmm/rev/cc0f67f99780 changeset: 559:cc0f67f99780 user: Pascal Volk date: Wed Jun 27 12:18:53 2012 +0000 description: VMM: The Python 2.4.x compatibility commit. diffstat: VirtualMailManager/account.py | 14 ++++++++++---- VirtualMailManager/cli/subcommands.py | 14 ++++++++------ VirtualMailManager/handler.py | 6 ++++-- 3 files changed, 22 insertions(+), 12 deletions(-) diffs (65 lines): diff -r 2fcf12fdecc2 -r cc0f67f99780 VirtualMailManager/account.py --- a/VirtualMailManager/account.py Thu Jun 14 20:45:12 2012 +0000 +++ b/VirtualMailManager/account.py Wed Jun 27 12:18:53 2012 +0000 @@ -85,11 +85,17 @@ self._uid, _mid, _qid, _ssid, _tid, _note = result def load_helper(ctor, own, field, dbresult): - cur = None if own is None else getattr(own, field) + # Py25: cur = None if own is None else getattr(own, field) + if own is None: + cur = None + else: + cur = getattr(own, field) if cur != dbresult: - kwargs = { field : dbresult } - return None if dbresult is None \ - else ctor(self._dbh, **kwargs) + kwargs = {field: dbresult} + if dbresult is None: + return dbresult + else: + return ctor(self._dbh, **kwargs) self._qlimit = load_helper(QuotaLimit, self._qlimit, 'qid', _qid) self._services = load_helper(ServiceSet, self._services, 'ssid', diff -r 2fcf12fdecc2 -r cc0f67f99780 VirtualMailManager/cli/subcommands.py --- a/VirtualMailManager/cli/subcommands.py Thu Jun 14 20:45:12 2012 +0000 +++ b/VirtualMailManager/cli/subcommands.py Wed Jun 27 12:18:53 2012 +0000 @@ -673,12 +673,14 @@ ctx.scmd) elif ctx.argc < 4: usage(EX_MISSING_ARGS, _(u'Missing storage value.'), ctx.scmd) - try: - bytes_ = ctx.args[3] if ctx.args[3] == 'default' \ - else size_in_bytes(ctx.args[3]) - except (ValueError, TypeError): - usage(INVALID_ARGUMENT, _(u"Invalid storage value: '%s'") % - ctx.args[3], ctx.scmd) + if ctx.args[3] != 'default': + try: + bytes_ = size_in_bytes(ctx.args[3]) + except (ValueError, TypeError): + usage(INVALID_ARGUMENT, _(u"Invalid storage value: '%s'") % + ctx.args[3], ctx.scmd) + else: + bytes_ = ctx.args[3] if ctx.argc < 5: messages = 0 else: diff -r 2fcf12fdecc2 -r cc0f67f99780 VirtualMailManager/handler.py --- a/VirtualMailManager/handler.py Thu Jun 14 20:45:12 2012 +0000 +++ b/VirtualMailManager/handler.py Wed Jun 27 12:18:53 2012 +0000 @@ -832,8 +832,10 @@ if not acc: raise VMMError(_(u"The account '%s' does not exist.") % acc.address, NO_SUCH_ACCOUNT) - transport = None if transport == 'default' \ - else Transport(self._dbh, transport=transport) + if transport == 'default': + transport = None + else: + transport = Transport(self._dbh, transport=transport) acc.update_transport(transport) def user_services(self, emailaddress, *services): |
|
From: <nev...@us...> - 2012-06-14 20:45:28
|
details: http://hg.localdomain.org/vmm/rev/2fcf12fdecc2 changeset: 558:2fcf12fdecc2 user: Pascal Volk date: Thu Jun 14 20:45:12 2012 +0000 description: pgsql/set-permissions.py: Extended permissions. Postfix needs read access on the postfix_gid view. Dovecot needs read permissions on both mailboxformat columns. diffstat: pgsql/set-permissions.py | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diffs (27 lines): diff -r 1498abbb6c91 -r 2fcf12fdecc2 pgsql/set-permissions.py --- a/pgsql/set-permissions.py Thu Jun 14 16:06:09 2012 +0000 +++ b/pgsql/set-permissions.py Thu Jun 14 20:45:12 2012 +0000 @@ -93,19 +93,19 @@ dbc.execute('GRANT SELECT, INSERT, UPDATE, DELETE ON %s TO %s' % (dc_rw, dovecot)) dbc.execute('GRANT SELECT ON alias, catchall, domain_data, domain_name, ' - 'maillocation, relocated, transport, users TO %s' % postfix) + 'maillocation, postfix_gid, relocated, transport, users TO %s' + % postfix) dbc.close() def set_permissions84(dbh, dc_vers, dovecot, postfix): dc_rw_tbls = ('userquota_11', 'userquota')[dc_vers == 12] - dc_ro_tbls = 'maillocation, service_set, quotalimit' - pf_ro_tbls = 'alias, catchall, relocated, transport' + dc_ro_tbls = 'mailboxformat, maillocation, service_set, quotalimit' + pf_ro_tbls = 'alias, catchall, postfix_gid, relocated, transport' db = dict(dovecot=dovecot, postfix=postfix) db['dovecot_tbls'] = { 'domain_data': 'domaindir, gid, qid, ssid', 'domain_name': 'domainname, gid', - 'mailboxformat': 'format', 'users': 'gid, local_part, mid, passwd, qid, ssid, uid', } db['postfix_tbls'] = { |
|
From: <nev...@us...> - 2012-06-14 16:06:22
|
details: http://hg.localdomain.org/vmm/rev/1498abbb6c91 changeset: 557:1498abbb6c91 user: Pascal Volk date: Thu Jun 14 16:06:09 2012 +0000 description: VMM/handler: Restored method Handler.domain_transport(). It went somehow lost with changeset 5806fb74130b. diffstat: VirtualMailManager/handler.py | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-) diffs (25 lines): diff -r fbbb16476c5b -r 1498abbb6c91 VirtualMailManager/handler.py --- a/VirtualMailManager/handler.py Thu May 31 18:48:00 2012 +0000 +++ b/VirtualMailManager/handler.py Thu Jun 14 16:06:09 2012 +0000 @@ -480,8 +480,20 @@ serviceset = ServiceSet(self._dbh, **kwargs) dom.update_serviceset(serviceset, (True, False)[not force]) + def domain_transport(self, domainname, transport, force=None): + """Wrapper around Domain.update_transport()""" + if force is not None and force != 'force': + raise DomainError(_(u"Invalid argument: '%s'") % force, + INVALID_ARGUMENT) + dom = self._get_domain(domainname) + trsp = Transport(self._dbh, transport=transport) + if force is None: + dom.update_transport(trsp) + else: + dom.update_transport(trsp, force=True) + def domain_note(self, domainname, note): - """Wrapper around Domain.update_transport()""" + """Wrapper around Domain.update_note()""" dom = self._get_domain(domainname) dom.update_note(note) |