Email feature [core]

Main features to support with emails

  • Multi-part emails, with text, HTML, attachments
  • Theming for the HTML section
  • Emails include a priority
  • Bouncing emails must be managed in some ways
  • Email body must support all the usual tokens
    • The body content (and subject) must be tweak to only include absolute URLs
  • Cumulative emails (i.e. notices that are piled up in a SINGLE email!)
    • Delayed signal emails should be viewed as Cumulative but only the last email should be sent (i.e. I make 3 changes to page X, editing/saving each time, I want the moderator to receive a total of ONE email.)
  • Ask for emails to be sent and let another server send them
  • Diverse statistics
  • Encryption (assuming the user has a public key then we can encrypt his/her emails!)
  • Newletters
  • Auto-responder
    • Track links being clicked (which link, time and date, etc.)
    • Allow dynamism such as selecting the next email depending on:
      • the user
      • the source where the user registered from
      • the link(s) the user clicked
      • the links can include a key which is required to visit said page without an account (i.e. so we block people who are not on our list from visiting that page by default)
      • the time and date they clicked previous links
      • the pages the user visited
      • whether the user watched your entire video (actually, having the timestamp of the playback is even better!)
      • whether the user purchase something
      • whether the user called your office
      • whether the user downloaded a file (also we can create a special link so the download is otherwise locked down, unless you received this special link--although the user can still share the link with his friends, we can also track the number of downloads, time and date, IP addresses, etc.)
      • etc.
    • Supporting tokens also allows us dynamism the other way around

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++

Contact Us Directly