Main features to support with emails
Newsletters are emails... but we also want to have a certain number of pages that are used to email our users and we want to allow users to send a website page to a friend using an email (in that case we could also offer to send a link rather than a whole email with the content, forcing the friend to come and visit the site.)
For example, someone who creates an account receives an email asking him/her to follow a link to confirm the registration. There ought to be a plug-in that takes care of emails and can generate MIME based emails with images and other attachments. [users need to be able to choose between text or HTML]
The email layout will be defined on the page like for any other page! [here we see that the layout should not just be a "theme" or we'd have to redesign all the pages layout all the time, we should instead have a set of defaults for each available feature such as this one.]
That plug-in can then be used by the Newsletter to send the emails.
The plug-in must be smart enough to accumulate diverse emails to be sent and gather statistics and catch errors when an email bounces.
Statistics should include information such as time when the email was opened, how many times the user looked at the email, whether it was opened at all (i.e. assuming the image link is hit...)
And if we can register that and attach all the info to the corresponding email/user then we can later do things such as send the email between 10:00 and 11:00 instead of 16:00 because the user is much more likely to read the email then.
When translations are available, the email module needs to select the correct language before sending the email...
The system should keep track of what is being sent so we can generate statistics (how many emails were sent total, how many for this type of pages, how many for this very page, etc.)
Note: this is a core module because it is required by the User Registration (i.e. to send an email for the user to confirm his registration.) We will allow user registration without confirmation for intranet websites, but it probably still would make the email plugin mandatory.
Snap! Websites
An Open Source CMS System in C++