[Vmail-discuss] quota in vmail-sql-0.6

ilgiz kalmetev ilgiz@xxxxxxxxxxxxxx
Wed, 19 Jun 2002 09:19:24 +0600


------------66871AE622897B
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hello, vmail-discuss.

    I added quota support in vmail-sql-0.6. Paul Warren suggested to post details
to the vmail-sql list.
    So, shortly:

    1) Diffs for 'email_setup', 'VE-domain' and 'VE-popbox' - in attachments.

    2) In /etc/exim.conf must be something like (below '##quota options'):
    === cut ===
virtual_localdelivery:
  driver = appendfile                                                                                                               
  group = mail
  mode = 0660
  mode_fail_narrower = false
  envelope_to_add = true
  return_path_add = true
  create_directory = true
  maildir_format
  directory_mode = 770
  directory = ${lookup mysql{select path from domain left join domain_alias on domain_alias.domain_name = domain.domain_name where domain.domain_name = '$domain' or domain_alias.alias = '$domain'}{$value}fail}/${lookup mysql{select mbox_name from popbox left join domain_alias on popbox.domain_name = domain_alias.domain_name where (popbox.domain_name = '$domain' or domain_alias.alias = '$domain') and local_part = '$local_part'}{$value}fail}/Maildir
  delivery_date_add                                                                                                                 
  user = ${lookup mysql{select unix_user from domain left join domain_alias on domain_alias.domain_name = domain.domain_name where domain.domain_name = '$domain' or domain_alias.alias = '$domain'}{$value}fail}
  ## quota options:
  maildir_tag = ,S=$message_size
  quota = ${lookup mysql{select quota from popbox left join domain_alias on domain_alias.domain_name = popbox.domain_name where local_part = '$local_part' and (popbox.domain_name = '$domain' or alias = '$domain')}{$value}fail}
  quota_size_regex = S=(\d+)$
  quota_warn_threshold = 80%
  quota_warn_message = "\
        To: $local_part@$domain\n\
        Subject: Your mailbox\n\n\
        This message is automatically created \
        by mail delivery software.\n\n\
        The size of your mailbox has exceeded \
        a warning threshold (${quota_warn_threshold}) that is\n\
        set by the system administrator.\n"    

   === cut ===

   3) Changes in database structure (marked by '>>'):
   === cut ===
CREATE TABLE domain (
  domain_name varchar(255) NOT NULL default '',
  unix_user varchar(255) default NULL,
  password_hash varchar(255) default NULL,
  path varchar(255) default NULL,
  max_popbox int(11) default NULL,
>>  quota_default varchar(16) default '5M',
  PRIMARY KEY  (domain_name)
) TYPE=MyISAM COMMENT='Per-domain data';

CREATE TABLE popbox (
  domain_name varchar(255) NOT NULL default '',
  local_part varchar(255) NOT NULL default '',
  password_hash varchar(255) default NULL,
  mbox_name varchar(255) default NULL,
>>  quota varchar(16) default '5M',
  PRIMARY KEY  (domain_name(8),local_part(8))
) TYPE=MyISAM COMMENT='Virtual users accounts';
   === cut ===

   quota field is varchar because exim understand values like
   '1000000', '10M', '10k'.

   Disclaimers:
   1) Sorry, I write english really bad.
   2) This one-day hack can have bugs.
   
   Any questions?


-- 
 ilgiz kalmetev                         mailto:ilgiz@bashtelecom.ru
------------66871AE622897B
Content-Type: application/x-gzip; name="email_setup.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="email_setup.diff.gz"

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
4vQdDpRkbzKQa2gXA69n/weLg5ysnhUAAA==

------------66871AE622897B
Content-Type: application/x-gzip; name="VE-domain.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="VE-domain.diff.gz"

H4sICJzxDz0AA1ZFLWRvbWFpbi5kaWZmAK1V23LiRhB9lr6ii1AFlCRKksEX7HXYyrJJJdmyy+t4
HxIXO5aGRRVJw86MYkjif0/PRULC9j6FB4Rmuk93nz7dBEEAd4sgZQXJyjHj2RfnE03h56qE6AzC
09nkbBYdQxyGset53t7Wua2oMTuFKJzF09k0NGbzOQTT2D8GD79PYD53of403sBpwf6icGFfS1LQ
y5fs8kzIl843bPPAtlR0EWBYkG1z929V5lmRSZqOXM/Z+36tmCTLlK5IlcsDgAtzKbK/FdpqTMcw
mH4Y+DCIwvAX/cQfAxi54MLi6j0+VL3RUaQKjo5i/7SpGCNuiBCPKfTrrNUr46m6F1QCAcw3K6oC
yqp4oBzYal/ZinGQawrG132NgBr7wkBcup7Bbgx0RQIedlCXfIDsdZG79DTwLWJULiRNFc4j4Snl
wgeSZ0RgNFKmcH11Dd+soXHUME2InCUkR5K4xEYohUjaVobik21eddGNiOMT1JwXH4VWeu9YSce2
VU9Ac5GtYNgvWEqBfoWB0tdgBP+4gdNfMQZvEPphHVwKmtNEkjxfEs7JjtPVsPdx8evih1tby1Il
5kNVZttlJSj3MQm59lVDl4Z6eH9z9cFa90bnKMH/O4J/0KuDgKhQZ8OzEjV+gfXjwV3GZYV8UTTJ
raUAVmKPMgFrJuTMsDiZ+GfI4uTEj8LOBKuPwez1dcuDy9/Dexjq36M/yt753vbJPXCxaQROUxMo
OjhiRPd4rOqzDvY4VsctSu3x0T2y2QKBNo7XxulAeW2o/Y1Cs7ZdPu395L477PHxFKfci4/P/Hg/
7X0hsat0S5NK0qEVqA+GpRHgICw4Z3zY0w+l4qz8Ynswg97YqIJyLiQfjkaWRwwZPLkB6paiSL0X
FNxJWUvZc76DZE2TP7GtRLbmD0ii2p/vgG5R90JJEoepVqRCajLXgp0/Fyxnj0awjVpf1SB8+mlx
s2irWWOlZhhUFQb/DYSYdk2P9f1s8xigPy6SkkmTNDqjsDyV+rNmvb358Q4VcK6vNUtdE6SrKvGl
FW3HKigqIUFsaJKtdqaa1rL8Vrw2a51LM+1CFsrMqt5zfrt+9/a25gM+Lg6pQ8TuwSv8uZ7Sok5J
Z5CyoY7VFlnCqjzVrFWblOAexb4BRrXbwYdnclN4nTH1zOqsg2npKRGCY2NoCX7WSjRdKgd1k3zQ
zKZZiv/0JNUaxFUjeZXIjJX4f4FXyhytvte7CpeF+x/aVwFejQgAAA==

------------66871AE622897B
Content-Type: application/x-gzip; name="VE-popbox.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="VE-popbox.diff.gz"

H4sICMDxDz0AA1ZFLXBvcGJveC5kaWZmAL1WXXObRhR9Rr/iDqUjGEACYseJZavy1KSdfNQeK00e
Eo2N2aVigliyLG2UjP577u6CRJwo00zH5QHQ3q9zz569yPd9eBX7Fatu2YcR4/lfxmtK4GlTQvgY
gkfHB4+PowiiIIgGruvufO+4HYbHB63bbAZ+9Mh7CC7ej2A2G0B3baMhIQROCFsleQllsqJTOClY
mhRQJVxMvxXB6Yr9TX8wqMhr0YVMB66xs7xvmEi+kw1OlMd1nX9Ei52N6AiGhy+GHgzDIHimnvgy
BGcAA4gvnuBDdh4ehl54BG54GHkHD1X3hlUlYgmnYGWM+dM3wULdJjLQsIpCWsjt0p/KitS2FApn
MvANGbC11rSgqUiK4jrhPFlzmtnmPH4e//oSVMS1xO3BCru7lv3Ak6uLF9C2+/r3+CoG3a22yrTE
xDLufyvjtVT+y2pgVDwvcVNOkDP8+VzuEMvg8uLyAaB/QTirasgYb+MxUD2PO5bBQCNN0iVYHOzZ
J4l+48An5MuYzbFSLRJhm4r0scWR63BhKjoN692ttCsE2NbPoygzPbDmb44WMIYwiA60n4ZoquBg
AbaMe3brvC1NSVcns9UaLIlYdoz9yXojc2yO2pp7XKWg+qY8A9vPtmZsBOv1fLuGtg4Oot30EtCi
VjnIFznQAenI8oLWmOEmy8udHXyxrihk4KtGbybK+U7RQK92XNs6l0wtq43np/Zb4jrWWK58Eeoi
FyFsQGI01G0P7f2gLfvuXvZboZ2q9WihNgOwALa66UiwVoxQoO9hqHyHUhZuR9RPkC5p+g7EMhF4
o53AklQ0qPc10A8oxhru49qhwHNw98BrHM7kXip/G8Xs6yPP2T/6yG/Pu56AhGZJUwh9wFvKvjdO
uhJyP3QZFJNUScw547bZprhp2x5iGtRoyYTmH3NI6cixtH807tjUwwfdzq5+e4WymMjQPoTWAzXR
lNhKD8iaNbBqcPzUFU3zbN0OMqnHLYiv6/ThqEVnotHWYiXQoR1s28g/L8/PXsbdZJzHLa0ylX7Z
wyWc/XHem7hysSgGrpyBfVwKDmG2Ku8Ajs22u5Q1BVG0NhVJBAXcX0DedSF5/lQo5bwW3Hb00euu
+xLgj1yIp/+p+P/Ln7OSjjTjoCYMxWkCRsuvmjQ3auBoCZfDTsEeKG2RnOC/loSoWZOXSHOTipyV
tSdN0h29flEfxc3gM99yRAeJCQAA

------------66871AE622897B--