Using Drupal and a combination of the Mailhandler, Notifications, and Messaging modules, it's easy to set up a Listserv- or Mailman-style mailing list that has most of the features of those programs and several more to boot. In a nutshell, the process works as follows:
- To subscribe to the mailing list, users subscribe to a "Listserv" or similar tag.
- To send email to the mailing list, a user sends an email to email@example.com
- Mailhandler retrieves that email and posts it as a node on your site with the "Listserv" tag
- Notifications and Messaging then distribute that node to all users subscribed to the "Listserv" tag
The benefits of this setup over a traditional Listserv are several-fold:
- Users can choose exactly how they would like to receive mailings, through a number of mediums besides just email
- Users can tag mailings and in turn use these tags to filter out the "noise" that's ubiquitous on mailing lists
- Mailings are preserved and organized on the Drupal website, so users can access them even without access to email, and they can in turn be commented on or referenced elsewhere on the site
- You don't have to install, configure, and maintain a completely independent software package, and get to leverage all of the other features of Drupal!
- An IMAP or POP3 mailbox
- Drupal 6.x installation with the following modules:
Retrieving new messages
You must first have a working mailbox with IMAP or POP3 access. On the Mailhandler configuration page, choose "Add mailbox" and fill in the access details for your mailbox. Under "default commands", enter
taxonomy: [Listserv] (or whatever taxonomy term you'd prefer- be sure to actually create the term for this to work). Make sure to enable cron processing, and I recommend deleting messages after they are processed to prevent issues like #368860: Mailhandler processes ALL messages if "Delete messages after they are processed" option is checked.. Optionally install and enable Mailsave to automatically include attachments to emails on posts. Now in order to retrieve new content automatically, cron must run Mailhandler on a regular basis, for instance every 5 minutes. You could simply set Drupal's cron to run every 5 minutes, but this will unnecessarily impact site performance. I recommend installing Elysia cron and configuring it to run most cron tasks on a more typical schedule (once per day), and only running Mailhandler and Notifications every 5 minutes. Finally, if anyone might be posting to your mailing list using Microsoft software (Outlook), you should install the Office HTML filter in order to prevent all of its junk HTML from showing up on postings.
Distributing messages to subscribers
Now you need to set up Notifications and Messaging. I recommend using the PHPMailer module for standard HTML emails, as it supports sending via BCC and including attachments (if you have the Notifications files module installed). You'll want to set up a new input format - call it HTML email, and enable the HTML purifier module and line break converter. Configure HTML purifier by adding
o to the forbidden elements option (that's right, just the letter "o").
Now you should be basically set - all users have to do is subscribe to the "Listserv" taxonomy term to receive copies of emails sent to your mailing list!