This is a complement to the tip "Restricting Mail to Receive Only" submitted by Paul Davies to use the feature he describes to control the mailboxes' size.
Code: What Paul describes in his tip is perfectly okay and can be used the following way to monitor the mailboxes' size on your mail server. We did that in our company and it works really fine. Here is the process to follow:
Build a database which will contain an entry for each mailbox stored on your server. In the main form of this database, have an entry for the mailbox owner, the size quota allowed (and may be a warning limit), the grace delay, number of times caught in the warning limit, number of times caught in the over quota limit and user's status(other fields can be added based on requirements).
Create an agent that will run every night on weekdays and that will follow this pattern:
- Scan all mailboxes on the server (e.g. in the mail directory).
- Extract the mailbox name and match it with the user's name.
- Extract the mailbox size.
- Compare the mailbox size with the allowed quota.
- If the user has reached the quota, send a mail to the user during each day of the grace delay (for instance 10 days) containing in the subject the message "Your quota is exceeded, you have "X" days to clean-up. No more sending after this delay."
- If the user has reached the warning limit, send a warning mail (you are close to your quota - clean up needed). For instance, every 3 runs of the agent.
- If a user has been over quota over the grace period, include him/her in a group from the NAB which has the no access flag set on the mail.box.
- Update user's counters (nb of times between warning and over quota, nb of times over quota).
- If the user is below the quota or the warning limit reset one or both of the counters.
- If the status of the users was "cannot send mail" and the user is below the quota, retrieve the users from the "No sending" group and reset the counters.
Of course include in the design of the database a button to immediately delete someone from the "No sending" group that can be used by your MIS support to extend the grace period for someone by one day (for instance).
This will automatically forbid sending for the people that do not comply with the quota after sending several warnings. It allows as well to manage different quotas according to the users and it gives you a nice monitoring tool for your mail space usage.
We implemented that in my Company some 3 years ago and the result has dramatically changed the space management of our servers. We now maintain our space usage inside known limits and have no more constant growth of space used by the mailboxes (apart from new users of course).
In addition to the tool, you have to have a very strict policy on derogations to the mailbox size policy enforced by your top management.
The code to include in the agent is not very simple but is still some quite basic LotusScript accessible to any Notes developer.
This was first published in January 2001