Hi, Im using dovecot with maildir++ quota and I have this problem, maybe some of you already solve this and can helpme. I want to use some flat file to tell exim and dovecot the quota limit for each user, i tried to work with exim and maildirsize file, but exim just ignores the limits there. I need a way (a really simple one, i dont want to create a database or an ldap server just for this) to tell exim and dovecot to lookup some file to get the quota limits. I know how to doit with exim, now i need to know how to tell dovecot to read the quota limits from this file. I know that dovecot can read the quota limit from the userdb, but im using pam and i dont want to change the entire auth schema. Can I configure dovecot to get the quota limit from a file using pam as userdb?
Thanks, Juan.
pd: here is my doveconf -n
# 2.0.13: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.18-238.9.1.el5 x86_64 CentOS release 5.6 (Final) ext3 auth_cache_size = 10 M auth_debug = yes auth_verbose = yes base_dir = /var/run/dovecot/ default_client_limit = 5000 default_process_limit = 1000 disable_plaintext_auth = no listen = * login_greeting = Server ready. mail_debug = yes mail_location = maildir:/var/mail/%u:INDEX=~/ mail_plugins = quota maildir_very_dirty_syncs = yes passdb { args = failure_show_msg=yes %s driver = pam } plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size subject quota = maildir:Cuota de correo quota_rule = *:storage=1G quota_rule2 = Trash:storage=+100M } protocols = imap pop3 service auth { client_limit = 12000 } service imap { process_limit = 5000 } service pop3 { process_limit = 5000 } ssl = no ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { driver = passwd } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags mail_plugins = quota imap_quota } protocol pop3 { pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_lock_session = yes pop3_uidl_format = %08Xv%08Xu }
On Mon, 08 Aug 2011 16:35:53 -0300 Juan Bernhard wrote:
Hi, Im using dovecot with maildir++ quota and I have this problem, maybe some of you already solve this and can helpme. I want to use some flat file to tell exim and dovecot the quota limit for each user, i tried to work with exim and maildirsize file, but exim just ignores the limits there. I need a way (a really simple one, i dont want to create a database or an ldap server just for this) to tell exim and dovecot to lookup some file to get the quota limits. I know how to doit with exim, now i need to know how to tell dovecot to read the quota limits from this file. I know that dovecot can read the quota limit from the userdb, but im using pam and i dont want to change the entire auth schema. Can I configure dovecot to get the quota limit from a file using pam as userdb?
Thanks, Juan.
pd: here is my doveconf -n
# 2.0.13: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.18-238.9.1.el5 x86_64 CentOS release 5.6 (Final) ext3 auth_cache_size = 10 M auth_debug = yes auth_verbose = yes base_dir = /var/run/dovecot/ default_client_limit = 5000 default_process_limit = 1000 disable_plaintext_auth = no listen = * login_greeting = Server ready. mail_debug = yes mail_location = maildir:/var/mail/%u:INDEX=~/ mail_plugins = quota maildir_very_dirty_syncs = yes passdb { args = failure_show_msg=yes %s driver = pam } plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size subject quota = maildir:Cuota de correo quota_rule = *:storage=1G quota_rule2 = Trash:storage=+100M } protocols = imap pop3 service auth { client_limit = 12000 } service imap { process_limit = 5000 } service pop3 { process_limit = 5000 } ssl = no ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem userdb { driver = passwd } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags mail_plugins = quota imap_quota } protocol pop3 { pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_lock_session = yes pop3_uidl_format = %08Xv%08Xu }
Try to google "exim smtp-time quota bounce". This is what you need. Exim can't do rcpt acl quota checks from the box, thus you need: 1)Some external script which will periodically create overquota file\database of users and reject them at smtp-time using lookup 2)Or write perl-script and exec it in router stage. Script will open maildirsize file, count quota and gives you 'yes\no'.
Also you need to deliver via dovecot deliver. This scheme will work.
Hi Nikita, thanks for the help, but I don't have any problem with bouncing the mail after the deliver (in fact, the mail pass two MTAs servers before reaching the final storage) I will try (with my limited english) to explain it better. Now I m working with a single quota rule for everyone. What I need is a mechanism to give a custom quota to each user. I thought that a flat file will be the simple and easy option to implement, and then use "quota=${lookup {$local_part} lsearch .....}" in the exim transport. I need a way to configure dovecot to follow the same file (or at least a modified copy). I've been told on this list that I can't rely on the maildirsize file, because it can be deleted under some conditions... so i neet to stablish quotas to dovecot somewhere else. My question is: can dovecot get a custon quota for a user from a file (not sql or ldap) and use at the same time pam as userdb?
Thanks, Juan.
El 09/08/2011 03:29 a.m., Nikita Koshikov escribió:
On Mon, 08 Aug 2011 16:35:53 -0300 Juan Bernhard wrote:
Hi, Im using dovecot with maildir++ quota and I have this problem, maybe some of you already solve this and can helpme. I want to use some flat file to tell exim and dovecot the quota limit for each user, i tried to work with exim and maildirsize file, but exim just ignores the limits there. I need a way (a really simple one, i dont want to create a database or an ldap server just for this) to tell exim and dovecot to lookup some file to get the quota limits. I know how to doit with exim, now i need to know how to tell dovecot to read the quota limits from this file. I know that dovecot can read the quota limit from the userdb, but im using pam and i dont want to change the entire auth schema. Can I configure dovecot to get the quota limit from a file using pam as userdb?
Thanks, Juan.
pd: here is my doveconf -n
# 2.0.13: /usr/local/etc/dovecot/dovecot.conf # OS: Linux 2.6.18-238.9.1.el5 x86_64 CentOS release 5.6 (Final) ext3 auth_cache_size = 10 M auth_debug = yes auth_verbose = yes base_dir = /var/run/dovecot/ default_client_limit = 5000 default_process_limit = 1000 disable_plaintext_auth = no listen = * login_greeting = Server ready. mail_debug = yes mail_location = maildir:/var/mail/%u:INDEX=~/ mail_plugins = quota maildir_very_dirty_syncs = yes passdb { args = failure_show_msg=yes %s driver = pam } plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size subject quota = maildir:Cuota de correo quota_rule = *:storage=1G quota_rule2 = Trash:storage=+100M } protocols = imap pop3 service auth { client_limit = 12000 } service imap { process_limit = 5000 } service pop3 { process_limit = 5000 } ssl = no ssl_cert =</etc/ssl/certs/dovecot.pem ssl_key =</etc/ssl/private/dovecot.pem userdb { driver = passwd } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags mail_plugins = quota imap_quota } protocol pop3 { pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_lock_session = yes pop3_uidl_format = %08Xv%08Xu }
Try to google "exim smtp-time quota bounce". This is what you need. Exim can't do rcpt acl quota checks from the box, thus you need: 1)Some external script which will periodically create overquota file\database of users and reject them at smtp-time using lookup 2)Or write perl-script and exec it in router stage. Script will open maildirsize file, count quota and gives you 'yes\no'.
Also you need to deliver via dovecot deliver. This scheme will work.
On Tue, 09 Aug 2011 11:18:55 -0300 Juan Bernhard wrote:
Hi Nikita, thanks for the help, but I don't have any problem with bouncing the mail after the deliver (in fact, the mail pass two MTAs servers before reaching the final storage) I will try (with my limited english) to explain it better. Now I m working with a single quota rule for everyone. What I need is a mechanism to give a custom quota to each user. I thought that a flat file will be the simple and easy option to implement, and then use "quota=${lookup {$local_part} lsearch .....}" in the exim transport. I need a way to configure dovecot to follow the same file (or at least a modified copy). I've been told on this list that I can't rely on the maildirsize file, because it can be deleted under some conditions... so i neet to stablish quotas to dovecot somewhere else. My question is: can dovecot get a custon quota for a user from a file (not sql or ldap) and use at the same time pam as userdb?
Thanks, Juan.
So, you need customizable userdb lookup without ldap or sql. You can try too use checkpassword as userdb and then, in the script - parse quota-file, make pam lookup and return userdb_quota* values for specific user. More on http://wiki2.dovecot.org/AuthDatabase/CheckPassword . I don't have experience with this authdatabase method, but seems that it suitable for you. But in general - it's better to prevent editing maildirsize file from 2 instances.
Thank you Nikita, that's what I need.
El 10/08/2011 03:35 a.m., Nikita Koshikov escribió:
On Tue, 09 Aug 2011 11:18:55 -0300 Juan Bernhard wrote:
Hi Nikita, thanks for the help, but I don't have any problem with bouncing the mail after the deliver (in fact, the mail pass two MTAs servers before reaching the final storage) I will try (with my limited english) to explain it better. Now I m working with a single quota rule for everyone. What I need is a mechanism to give a custom quota to each user. I thought that a flat file will be the simple and easy option to implement, and then use "quota=${lookup {$local_part} lsearch .....}" in the exim transport. I need a way to configure dovecot to follow the same file (or at least a modified copy). I've been told on this list that I can't rely on the maildirsize file, because it can be deleted under some conditions... so i neet to stablish quotas to dovecot somewhere else. My question is: can dovecot get a custon quota for a user from a file (not sql or ldap) and use at the same time pam as userdb?
Thanks, Juan. So, you need customizable userdb lookup without ldap or sql. You can try too use checkpassword as userdb and then, in the script - parse quota-file, make pam lookup and return userdb_quota* values for specific user. More on http://wiki2.dovecot.org/AuthDatabase/CheckPassword . I don't have experience with this authdatabase method, but seems that it suitable for you. But in general - it's better to prevent editing maildirsize file from 2 instances.
participants (2)
-
Juan Bernhard
-
Nikita Koshikov