Date: Mon, 12 Jan 2004 07:59:30 +0000 From: Jez Hancock <jez.hancock@munk.nu> To: Greg Bernard <bsd@todoo.biz> Cc: 'FreeBSD Questions' <freebsd-questions@freebsd.org> Subject: Re: Other ways than quotas to limit mail files size ?? Message-ID: <20040112075930.GA29509@users.munk.nu> In-Reply-To: <BC280CAD.2334E%bsd@todoo.biz> References: <002401c3d890$044d9770$f4f0a8c0@pcmedx.com> <BC280CAD.2334E%bsd@todoo.biz>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 12, 2004 at 08:34:53AM +0100, Greg Bernard wrote: > Le 11/01/04 23:12, ??Mike Maltese?? <mike@pcmedx.com> a ?crit?: > >> Is there another way to limit the amount of space occupied by mail files > > on > >> a per user basis using another method than quotas ? > >> I would like to limit the amount of space available for each user's e.mail > >> so e.mail file size will not go crazy. > > Is there an option to limit message size with the MTA you are using? > Well I don't know, that's my question... > I am using sendmail. Exim can do quotas. http://www.exim.org/ also in the ports: /usr/ports/mail/exim/ I've never actually used the quota system myself in Exim but it sounds relatively straightforward - from the specifications for Exim: quota Type: string* Default: unset This option imposes a limit on the size of the file to which Exim is appending, or to the total space used in the directory tree when the "directory" option is set. In the latter case, computation of the space used is expensive, because all the files in the directory (and any sub- directories) have to be individually inspected and their sizes summed (but see "quota_size_regex" below). Also, there is no interlock against two simultaneous deliveries into a multi-file mailbox. For single-file mailboxes, of course, an interlock is a necessity. A file's size is taken as its "used" value. Because of blocking effects, this may be a lot less than the actual amount of disk space allocated to the file. If the sizes of a number of files are being added up, the rounding effect can become quite noticeable, especially on systems that have large block sizes. Nevertheless, it seems best to stick to the "used" figure, because this is the obvious value which users understand most easily. The value of the option is expanded, and must then be a numerical value (decimal point allowed), optionally followed by one of the letters K or M. A value of zero unsets the option. The expansion happens while Exim is running as root, before it changes uid for the delivery. This means that files which are inaccessible to the end user can be used to hold quota values that are looked up in the expansion. When delivery fails because this quota is exceeded, the handling of the error is as for system quota failures. By default, Exim's quota checking mimics system quotas, and restricts the mailbox to the specified maximum size, though the value is not accurate to the last byte, owing to separator lines and additional headers that may get added during message delivery. When a mailbox is nearly full, large messages may get refused even though small ones are accepted, because the size of the current message is added to the quota when the check is made. This behaviour can be changed by setting "quota_is_inclusive" false. When this is done, the check for exceeding the quota does not include the current message. Thus, deliveries continue until the quota has been exceeded; thereafter, no further messages are delivered. See also "quota_warn_threshold". quota_directory Type: string* Default: unset This option defines the directory to check for quota purposes when delivering into individual files. The default is the delivery directory, or, if a file called maildirfolder exists in a maildir directory, the parent of the delivery directory. quota_filecount Type: string* Default: 0 This option applies when the "directory" option is set. It limits the total number of files in the directory (compare the inode limit in system quotas). It can only be used if "quota" is also set. The value is expanded; an expansion failure causes delivery to be deferred. quota_is_inclusive Type: boolean Default: true See "quota" above. quota_size_regex Type: string Default: unset This option applies when one of the delivery modes that writes a separate file for each message is being used. When Exim wants to find the size of one of these files in order to test the quota, it first checks "quota_size_regex". If this is set to a regular expression that matches the file name, and it captures one string, that string is interpreted as a representation of the file's size. The value of "quota_size_regex" is not expanded. This feature is useful only when users have no shell access to their mailboxes - otherwise they could defeat the quota simply by renaming the files. This facility can be used with maildir deliveries, by setting "maildir_tag" to add the file length to the file name. For example: maildir_tag = ,S=$message_size quota_size_regex = ,S=(\d+) The regular expression should not assume that the length is at the end of the file name (even though "maildir_tag" puts it there) because maildir MUAs sometimes add other information onto the ends of message file names. quota_warn_message Type: string* Default: see below See below for the use of this option. If it is not set when "quota_warn_threshold" is set, it defaults to 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 that is\n\ set by the system administrator.\n" quota_warn_threshold Type: string* Default: 0 This option is expanded in the same way as "quota" (see above). If the resulting value is greater than zero, and delivery of the message causes the size of the file or total space in the directory tree to cross the given threshold, a warning message is sent. If "quota" is also set, the threshold may be specified as a percentage of it by following the value with a percent sign. For example: quota = 10M quota_warn_threshold = 75% If "quota" is not set, a setting of "quota_warn_threshold" that ends with a percent sign is ignored. The warning message itself is specified by the "quota_warn_message" option, and it must start with a To: header line containing the recipient(s). A Subject: line should also normally be supplied. The "quota" option does not have to be set in order to use this option; they are independent of one another except when the threshold is specified as a percentage. -- Jez Hancock - System Administrator / PHP Developer http://munk.nu/ http://jez.hancock-family.com/ - personal weblog http://ipfwstats.sf.net/ - ipfw peruser traffic logging
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040112075930.GA29509>
