Sitecore MailingList Module
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.
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
Comments
Leave a Comment
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.