While it describes that we should store some of the information I believe we can definitely store the actual email copy at least for 2 reasons - history, web copy purposes.
Here is are some idea that came to my mind:
1. Store complete Email message that has been sent out to the User. It can play the role of Web Copy when needed. We should have new fields added which will store:
- Email Subject
- Email Body
- AdditionalRecepients (all recipients like CC, BCC users, groups and so on - it's okay to store)
- EmailKey (random 15 ro 20 alpa-numeric) to be able to reference to this log from the Front end - if needed (will use in URL)
We would need to have some sort of Tag which can be used within the Template and which during the mailing will be build correct URL with proper Key so users can click and view they web version if needed.
2. Create new System Configuration which would allow to specify number days to keep Email logs and delete all older ones (default 30 days). It's kind of rotation. Alternatively we can simple EMPTY the EmailBody field for all Logs older than specified date and this will save lots of space. In other words, who needs a copy of 1+ months old email?
3. Create ScheduledJob which would do cleaning once a day.
Please let me know what you think and if you supporting it.