A current project I have is to address an anomaly in the way the mail system works for reminders and alarms. When a reminder is created and an alarm is set the current subject of the reminder is copied from the Subject field into a $AlarmDescription field. If the subject of the reminder is ever changed from that point on the contents of the $AlarmDescription is not being updated (At least not with the 7.0 mail template)...
To solve this I am extending the .Domino Framework into the domain of the Mail database. A scary thought! So far I have created a DominoMailDB class to represent the mail database. This has a SyncAlarmSubjects method to scan though all alarms and fix all the documents where the $AlarmDescription does not match the Subject field. Whilst I am there I have fleshed out a DominoMailDocument class to represent the majority of documents in the Mail database. This class is extended by a DominoMessageDocument class to cover memos and reminders and a DominoEvent class to cover appointments, meeting, and reminders. A DominoReminder class extends the DominoEvent class providing access to reminder information such as the Alarm Description field ($AlarmDescription).
Having worked on a few projects requiring customization of the mail template I am thinking the above approach may be a lot cleaner and leave a smaller footprint on the mail template. In theory most of the changes to the business logic of the mail database can be included in a single Script library. The only other customization that should be required is to the presentation layer to add fields actions etc. Which, as we all know, we should ony do when absolutely necessary because each new release of the mail template creates a huge headache for somebody to integrate!!!
All going well this and other mail-related functionaility will be included in the next beta release for the .Domino Framework.