In this chapter we'll design and implement a complete newsletter mailing list system. This will allow users to subscribe to online newsletters, and administrators to manage the newsletter content. First, we'll look at what newsletters can offer to web sites like the one developed in this book, and we'll examine the various management aspects that must be addressed in order to make the mailing list administrator's life as easy as possible. By the end of the chapter, we'll have a powerful newsletter module fully developed and integrated into our site!
Throughout this book I've mentioned that the key to a successful site is having good content. This content also needs to be logically organized to ease navigability, have an attractive design, and offer some interaction with the user. The content not only has to be interesting and accurate, but must also be fresh and regularly updated to ensure that users keep coming back to visit the site. To help us achieve this for our TheBeerHouse web site, an article management module was developed in Chapter 5, to allow administrators and editors to easily manage and publish new content. Although you should try to publish new content on a regular basis, this is not always possible, especially if you can't afford a dedicated team to take care of this, or if your company has no news to pass on to users. Unfortunately, if users see a static page for too long, then chances are good that they won't come back very often, and they may end up forgetting about the site. But even when you frequently add fresh content to the site, not every user will be aware of it. They might not visit the site daily or weekly to see the latest updates, especially if the site is updated on a random basis with no public announcement.
A good way to inform users that some new content has been added to the site (for example, an article, a new product for sale, or a new layout design) is to send them an e-mail newsletter that lists all the new resources available on the site. Many sites offer the option of subscribing to a mailing list, which typically represents a group of users interested in a certain kind of news. A newsletter is created and sent to a mailing list to remind the community of users that the site is still worth visiting. However, many visitors don't like to submit their e-mail address just to be informed about changes to the web site, so to encourage people to maintain their subscriptions, and to encourage more people to sign up, a webmaster should offer something extra that is only available to the mailing list's subscribers, such as a short tip, article, or some kind of discount for one of the site's products (this is often called a kicker in marketing lingo).
The primary purpose of a mailing list system is to inform users that new material is available online, and to convince them to revisit the site again. It is also possible to make money from your mailing list. If you have several thousands of subscribers you could sell some space in your newsletters for advertisement spots. These shouldn't be anything too invasive, perhaps just a two-or three-line description of a partner site or company, or the manufacturer of a product you sell on your site. If you provide some valuable content in your newsletters, and the advertisement is short and preferably related to the theme of the site and the newsletter, the users won't complain about it. You can inform potential sponsors that this space in the newsletter is very valuable because it's only sent to users who have elected to receive it, so those users will likely read it thoroughly, and therefore the advertisement will get much more attention than it would receive through a common banner ad on a site. Research shows that the average click-through from spots in newsletters is around 4–5%, compared to around 1% or less for common banner ads.
However you decide to promote your web site to get more people to subscribe, you will face the problem of managing all the details of your clients, such as e-mail addresses, keeping track of the e-mail newsletter messages you send, and building a system to enable users to subscribe or unsubscribe easily (users must have the right to unsubscribe at any time). Some small sites manually collect the addresses from an HTML form, create a group of contacts in Outlook (or other messaging client), and use it to write a message to all their subscribers. This mostly applies to small, static sites, where ASP or other server-side code is not used. However, when the site grows and you get a significant number of subscribers, manually adding or removing users several times a week becomes a real chore, and if the number is on the order of thousands, it's almost impossible! Also, if you send out a newsletter to an Outlook group of contacts, you won't be able to personalize the newsletters in any way: they'll be exactly the same for every user. It would be much better to personalize every e-mail — for example, with the name of the subscriber if this information is available, because this will help to build a more personal relationship with subscribers. It's worth noting, however, that the most common way of subscribing to a list is for a user to enter her e-mail address in a form on the home page and press Submit. It's totally impersonal, and it will only enable you to personalize the newsletter with the user's e-mail address. In order to achieve a more extensive personalization, you have to ask the users to provide more details, such as their first and last name. Our newsletter module should support both a basic and extended subscription form, to accommodate both situations.
In summary, you may realize that you are losing traffic because you have no way of letting your users know that your content has been updated. Therefore, the aim of this chapter is to build a newsletter mailing list system. A secondary problem is that managing the system and personalizing newsletters is time-consuming, so we want to include a subscription and administration system that automates most of the tasks and enables the administrator to complete these tasks easily. Yet another problem is that you need to generate revenue, so you'll want to allow for the possibility of including advertising spots in the newsletters. Once you know what problems you want to solve, you can then move on to specifying the features you want it to have, i.e., the design stage. The next section provides a more detailed list of features we need to implement to have a fully functional mailing list module.