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.