we are going to program a newsletter module for Moodle (till now we used a slightly modified forum module, but we need a real newsletter module). As our first step we want to discuss the best way to integrate newsletter functionality into Moodle. We have done some research, and there are two principle strategies we could adopt:
- Provide newsletter functionality via a webservice
- Fork the forum module and adapt it in order to get rid of typical forum properties and add missing newsletter functionalities (adapt already existing newsletter code snippets to moodle coding guidelines,...)
We would create a plugout (webservice) to either phplist or sympa list server. The problem with phplist: They do not really have an API for that, but there are already some integrations in other CMS like drupal http://drupal.org/project/phplist. The advantage of sympa is, that they have a SOAP API: http://www.sympa.org/manual/soap
In general the plugout has following advantages:
- ready to use newsletter system
- workload for programming the plugout eventually not so high compared to strategy #2
- maintance/updates are done by the sympa/phplist team
- Moodle already offers many functionalities, that would be duplicated like:
- user management
- sending mails
- subsribe/unsubscribe feature
- web interface with html editor
- 100 000+ subscribers? (ex.: moodle.org forums)
- rights management (roles)
- manage two systems (Moodle + phplist/sympa)
- syncing users may be complicated
- maybe it is even more work to create the plugout, if we just adopt a minimum of the newsletter features
Implement the following features into the forked forum module, and get rid of the not used functionalities of the forum.
- bounce processing / handling
- optional: scheduled sending
- optional: Open/View Tracking tells you how many users opened your email message. This provides a minimum statistic, as many email clients with privacy or security policies block images (gmail, thunderbird, and others).
- optional: Subscriber Attributes like 'name', 'country', and other personal information, are completely customizable. You can specify what information you need to get from users when they subscribe.
- no forgotten / duplicate messages (I think the forum module tends to not to retry if sending the mails fails or is interrupted and does not track if mails are sent)
What would you think is the best approach? We are happy get your opinions and advise to be able to choose the best and most sustainable strategy.
Thank you for your feedback and best regards,