Sitecore MailingList Module

Published 16 May 08 11:11 PM | dwalker 

I recently had the opportunity to work with the Sitecore 5.3 MailingList Module and since it was my first time, I had to hunt around the API to figure out how to have a site visitor subscribe and unsubscribe from a MailingList. The only thing I could find was this post by Alex Shyba from back in 2005 when I guess it was actually called the Newsletter module.

This post is actually self serving, in that I will never have to hunt for it again. First, you of course have to install the MailingList Module and then Add a Reference to the Sitecore.MailingList.dll in the bin folder. Then add:

using Sitecore.Modules.MailingList.Core;

It needs some parameter validation before being 100%, but here goes:

private void SaveSubscriber(string firstName, string lastName, string email, string gender, string age)
{
    MailingList list = new MailingList();
    string listID = Sitecore.Context.Database.Items.GetItem("/sitecore/content/modules/mailing list/mailing lists/Newsletter").ID.ToString();
    string name = firstName + " " + lastName;
    string company = "";
    string country = Sitecore.Context.Language.ToString();
    list.PutSubscriber(name, email, company, country);
    // listID parameter says it's listID's although it's not a string array, beats me
    list.Subscribe(name, email, listID);
    // you can send any parameters here that you want
    list.PutSubscriberField(email, "Gender", gender);
    list.PutSubscriberField(email, "Age", age);
}

private void RemoveSubscriber(string email)
{
    MailingList list = new MailingList();
    string listID = Sitecore.Context.Database.Items.GetItem("/sitecore/content/modules/mailing list/mailing lists/Newsletter").ID.ToString();
    // Second parameter expects string array of Newsletter Sitecode Id's to subscribe to.
    list.Unsubscribe(email, listID.Split(','));
}

Let me know if you find it useful or know of something I was overlooking. Most of this was taking from Alex's post and just updated to Sitecore CMS version 5.3.

Technorati Tags: ,,,
Sponsor

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# roy said on June 9, 2008 7:02 AM:
Just installed the mailinglist module(SC5.3.1) and need to create a registration form similar to yours. What if this person is already subscribed? Is PutSubscriber doing a check if email exists? If so, does it update all fields? Does it return some kind of message telling you what is done?
# dwalker said on June 11, 2008 5:40 PM:

Hi Roy,

It appears that the MailingList module actually throws an Object reference not set to an instance of an object error on the line: list.Subscribe(name, email, listID);

You must protect for this yourself it appears.

Thanks,

David Walker

Leave a Comment

(required) 
(optional)
(required) 
Enter the code you see below

About dwalker

David Walker has over 15 years experience in application development with over 50% of that employed as a consultant with companies such as: Texaco, Bank of Oklahoma, Winner Communications (ESPN.com) and IBM Global Services. At the age of 14, he began his application development ambitions with a Commodore 64, BASIC, and a 300 baud modem. Even at that early age, he primarily focused on two specific application types: multi-user communities and database applications.

His hunger to learn as much as possible about development lead him through courses such as DBase III, DBase IV, Pascal, C, C++, Java, and several in UNIX. He started his development career first doing heavy processing with Access and VBA, then moved on to VB 3, Oracle, and Delphi. Visual Basic was one environment that remained constant for many years, including his very first .NET projects performed in Visual Basic.NET.

After working several years on very high end internal Corporate applications, the consultant company he was working for, sought out his ideas for actual software products that could be packaged and sold. He had already developed several prototypes of a dynamic portal application, before portals even became popular, so this became the logic decision and he became the Director of Product Development. Under his direction, a team of developers and graphic artists, took a skinning approach before that become popular, and completed the core portal application, and continued on to developer 15+ add-on modules, including things such as: Help Desk Ticket Systems, Change Control, Records Management, Human Resources, and many more applications. Eventually, it spun off into it's own separate company as KnowledgeGEAR, a complete intranet in the box solution.

Having worked as a consultant, he has had a experience with a very wide range of applications and architectures, at one time, even converting several Fox Pro and GW-Basic applications to VB 6 and ASP. His early training of Unix and the C language and years of experience with JavaScript, lead him very quickly to C#, where he has remained focused ever since.

He is the current President of the Tulsa Developers .NET user group.. He has been an MCP since 2003 and MCAD and MCSD since 2005. He is currently pursuing his MCDBA and then on to MCSE.

Search

Go

This Blog

Tags

Archives

My Blog Roll (Partial)

My Sites

Syndication