[Dovecot] Per-user IMAP enable - is it possible?
Just wonder if it is possible to enable/disable IMAP4 on Dovecot (2.0.x as far) on per-user basis?
The deal is simple: our policy is not to store a lot of mailing on mailserver (the user should store it locally), thus the 'use POP3' approach, but for a vary few users it is permitted to use IMAP4. But users sometimes simple miss the point that some mail clients (e.g. TB) 'prefer' to use IMAP4 first, and afterward I see mailbox full of mailings and no local store of it on user's workstation.
Sound too complicated, but setting up two Dovecots is not something I'd love to do as well.
Thank you for any ideas, Alexander
On 3/20/2012 1:28 AM, Alexander Chekalin wrote:
Just wonder if it is possible to enable/disable IMAP4 on Dovecot (2.0.x as far) on per-user basis?
The deal is simple: our policy is not to store a lot of mailing on mailserver (the user should store it locally), thus the 'use POP3' approach, but for a vary few users it is permitted to use IMAP4. But users sometimes simple miss the point that some mail clients (e.g. TB) 'prefer' to use IMAP4 first, and afterward I see mailbox full of mailings and no local store of it on user's workstation.
Sound too complicated, but setting up two Dovecots is not something I'd love to do as well.
Thank you for any ideas, Alexander There would be various ways to do this, the specifics would depend on what kind of passdb you use.
If you happen to be using a SQL database, you could do something like this: Add an allow_imap column, and change the password_query in dovecot-sql.conf.ext to something like this:
password_query = SELECT password FROM user WHERE username = '%n' AND
domain = '%d'
AND ('%s' != 'imap' or allow_imap=1)
This would make the user appear to not exist when trying to log in via IMAP.
On 3/20/2012 1:43 AM, Gedalya wrote:
On 3/20/2012 1:28 AM, Alexander Chekalin wrote:
Just wonder if it is possible to enable/disable IMAP4 on Dovecot (2.0.x as far) on per-user basis?
The deal is simple: our policy is not to store a lot of mailing on mailserver (the user should store it locally), thus the 'use POP3' approach, but for a vary few users it is permitted to use IMAP4. But users sometimes simple miss the point that some mail clients (e.g. TB) 'prefer' to use IMAP4 first, and afterward I see mailbox full of mailings and no local store of it on user's workstation.
Sound too complicated, but setting up two Dovecots is not something I'd love to do as well.
Thank you for any ideas, Alexander There would be various ways to do this, the specifics would depend on what kind of passdb you use.
If you happen to be using a SQL database, you could do something like this: Add an allow_imap column, and change the password_query in dovecot-sql.conf.ext to something like this:
password_query = SELECT password FROM user WHERE username = '%n' AND domain = '%d'
AND ('%s' != 'imap' or allow_imap=1)This would make the user appear to not exist when trying to log in via IMAP.
Or like this, might be more appropriate.
password_query = SELECT password, if('%s' != 'imap' or allow_imap=1,
NULL, 'y') as nologin
FROM user WHERE username = '%n' AND domain = '%d'
http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/NoLogin
On 20/03/2012 08:18, Gedalya wrote:
On 3/20/2012 1:43 AM, Gedalya wrote:
On 3/20/2012 1:28 AM, Alexander Chekalin wrote:
Just wonder if it is possible to enable/disable IMAP4 on Dovecot (2.0.x as far) on per-user basis?
The deal is simple: our policy is not to store a lot of mailing on mailserver (the user should store it locally), thus the 'use POP3' approach, but for a vary few users it is permitted to use IMAP4. But users sometimes simple miss the point that some mail clients (e.g. TB) 'prefer' to use IMAP4 first, and afterward I see mailbox full of mailings and no local store of it on user's workstation.
Sound too complicated, but setting up two Dovecots is not something I'd love to do as well.
Thank you for any ideas, Alexander There would be various ways to do this, the specifics would depend on what kind of passdb you use.
If you happen to be using a SQL database, you could do something like this: Add an allow_imap column, and change the password_query in dovecot-sql.conf.ext to something like this:
password_query = SELECT password FROM user WHERE username = '%n' AND domain = '%d'
AND ('%s' != 'imap' or allow_imap=1)This would make the user appear to not exist when trying to log in via IMAP.
Or like this, might be more appropriate.
password_query = SELECT password, if('%s' != 'imap' or allow_imap=1, NULL, 'y') as nologin
FROM user WHERE username = '%n' AND domain = '%d'http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/NoLogin
but this will disallow also pop3...
Eliezer
-- Eliezer Croitoru https://www1.ngtech.co.il IT consulting for Nonprofit organizations elilezer <at> ngtech.co.il
On 3/20/2012 5:45 AM, Eliezer Croitoru wrote:
On 20/03/2012 08:18, Gedalya wrote:
On 3/20/2012 1:43 AM, Gedalya wrote:
On 3/20/2012 1:28 AM, Alexander Chekalin wrote:
Just wonder if it is possible to enable/disable IMAP4 on Dovecot (2.0.x as far) on per-user basis?
The deal is simple: our policy is not to store a lot of mailing on mailserver (the user should store it locally), thus the 'use POP3' approach, but for a vary few users it is permitted to use IMAP4. But users sometimes simple miss the point that some mail clients (e.g. TB) 'prefer' to use IMAP4 first, and afterward I see mailbox full of mailings and no local store of it on user's workstation.
Sound too complicated, but setting up two Dovecots is not something I'd love to do as well.
Thank you for any ideas, Alexander There would be various ways to do this, the specifics would depend on what kind of passdb you use.
If you happen to be using a SQL database, you could do something like this: Add an allow_imap column, and change the password_query in dovecot-sql.conf.ext to something like this:
password_query = SELECT password FROM user WHERE username = '%n' AND domain = '%d'
AND ('%s' != 'imap' or allow_imap=1)This would make the user appear to not exist when trying to log in via IMAP.
Or like this, might be more appropriate.
password_query = SELECT password, if('%s' != 'imap' or allow_imap=1, NULL, 'y') as nologin
FROM user WHERE username = '%n' AND domain = '%d'http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/NoLogin
but this will disallow also pop3...
Eliezer
No. It will return NULL unless the service is 'imap' and allow_imap != 1. nologin=NULL has no effect, so everything is allowed.
participants (3)
-
Alexander Chekalin
-
Eliezer Croitoru
-
Gedalya