Author: Eli Date: To: 'Exim User's Mailing List' Subject: [Exim] Accessing settings as variables?
I decided to redo the quota_warn_message, and wanted to include the contents
of the quota and quota_warn_threshold settings into the message so users
would know right away what the status of their quota was - but since I store
everything in SQL, it would mean I have to do a select to first set quota
and quota_warn_threshold, and then I'd have to do the same select once again
to insert the values into quota_warn_message.
Now if the select statements were relatively simple, it wouldn't be that
much of a problem, but I plan on implementing quota settings in various
different places (global, domain, user - allowing finer tuning as you go
down the list) which would mean my select statements could get relatively
complicated and long. I was hoping at first maybe I could just store them
in a variable, but that seems possible only in the ACL stages.
Is it possible to access settings as variables, so like in my transport
handling delivery, could I access the quota setting as $quota or something?
If it's not possible, would it be a feature worth considering (I'd suggest a
function to retrieve them so as to not clutter the variable namespace -
something like ${setting:quota} or whatever)?
Also, on the topic of quotas, I noticed there is a quota_filecount setting
which lets you limit the # of messages for a quota, rather than the size of
all messages. Does the quota_warn_threshold take into effect for
quota_filecount as well? Would it be reasonable to maybe make a separate
threshold setting for quota_filecount. For example, have
quota_warn_threshold be the global setting, then
quota_warn_threshold_filesize and quota_warn_threshold_filecount as
individual settings for filesize and filecount respectively?
As well, would it or is it possible to inject a message stating that
someones mailbox *IS* full into a mailbox so that users know they will now
no longer receive messages until they clear some old ones out? I know for a
system quota it may not be possible if quota_is_inclusive is set false, but
maybe so long as quota_is_inclusive is true, a setting or settings could be
allowed to inject a message just before someones mailbox fills up (of course
it would have to have enough space to insert the failure message as well, so
there'd need to be like a buffer setting to make exim always keep that much
space open for such a message). I think this would be a very useful feature
so that users who ignore or don't pay attention to their quota warning
messages at least have one final message in their inbox saying "you blew it
- clear your messages out" :)