Creating mailing lists for SharePoint sites and blogs [No Code Required] – Introduction

NOTE : This article was published on a couple of weeks ago and because of the wonderful feedback I received, I decided to cross-post it here too.

Last week, I worked on creating a mailing list for a public facing SharePoint site. I really had some constraints because I was only allowed to use SharePoint Designer and the browser. I’m not used to these situations because I am mainly a software engineer. However, it was a very nice experience. I applied lots of knowledge and I worked around the constraints. I decided to put the experience and workarounds together into an educational series of articles to help SharePoint end users and administrators create their own mailing list without writing a single line of .NET code.

Here is a snapshot of what I ended up with last week:


  1. A SharePoint form is needed, from which anonymous users can send requests to join the mailing list. We need this information to be stored somewhere on our SharePoint site.
  2. The form should be customized to validate the e-mail addresses entered by anonymous users. We also need the validation to be client-sided rather than the
    server-sided. Validation provided out of the box.
  3. When filling out the form, users should select their countries from a drop down list, which holds all the countries of the world.
  4. We need to first approve those requests before allowing users to receive our letters.
  5. Once a request is approved, an e-mail should be sent informing him/her of the approval of the request and telling how to unsubscribe from the mailing list.
  6. List administrators should be able to send e-mails to all the approved and registered users specifying some filters. For instance, the list administrator should be capable of sending e-mails to all the registered users from Canada.
After completing this set of articles, you should be capable of:
  1. Creating and configuring SharePoint Lists using SharePoint Designer.
  2. Configuring anonymous contributions for SharePoint Lists.
  3. Creating simple SharePoint Designer workflows for sending confirmation mail to list subscribers.
  4. Configuring content approval for share point lists.
  5. Creating custom SharePoint list forms.
  6. Creating Client-Side validation for SharePoint list forms.
  7. Using Data Form Web Part.
  8. Connecting SharePoint Lists to Outlook.
  9. Using the Word 2007 Mail Merge feature with SharePoint Lists.
  10. Using and creating SharePoint List Templates.
  11. Hiding SharePoint lists.
  12. Using lookup columns in SharePoint lists.

In the next part, we will create a SharePoint list based on the Contacts template provided by SharePoint. We will configure the list to allow anonymous contribution but not anonymous access. In other words, anonymous users should be able to add items but not navigate to the list data. Stay Tuned


Problems with anonymous access to custom SharePoint list forms

A couple of days ago, I had troubles with anonymous access to a custom form for a custom list. I created a list, and added a DataFormWebPart to the page using SharePoint Designer as shown below.


I set the page and the list to allow anonymous access, and I could get to both. However, when I opened the page with the custom list form, the DataFormWebPart displayed the following error :


Resolution :

Just set DataSourceMode of SPDataSource control to Webs or ListOfLists as shown below :


For more information about the differences between Webs and ListOfLists, See this SharePoint Designer Team Blog post for a decent explanation of these options:


Tracing Service Lost Trace Events

Sometimes you will encounter something very weird in the ULS logs. The only entries that are logged are “Tracing service lost trace events” log entries. To resolve this issue, just restart your Tracing service. You can do that from the command line using the following commands:

net stop sptrace (to stop the tracing service)
net start sptrace (to start the tracing service)


This will do the trick for you.

In addition, you may want to check out the free SharePoint Troubleshooting issue I recently authored forUnderstanding SharePoint Journal .

Cached Timer Job Assemblies

Any time you update your custom timer job class and deploy the assembly to the global assembly cache, you must restart all the timer services in the farm. If you don’t restart the timer service, it will run the old copy of your timer job class. Yes, the timer service caches the assemblies. Restarting the SharePoint timer service is the only way to refresh the assembly cache and force it to use your updated assembly. You can achieve that from the command line using the following commands:

net stop sptimerv3
net start sptimerv3

Yes! I have learned that the hard way!

“SharePoint Troubleshooting” , A new free bonus issue of Understanding SharePoint Journal written by Me!

Just a quick note to let you know that a new free bonus issue of “Understanding SharePoint Journal” was released a couple of hours ago. The issue is titled “SharePoint Troubleshooting” and is written by me.

In that 25-page bonus issue, I will introduce you to some of the troubleshooting utilities, tools, tips, and tricks that can make your life easier in view of the fact that SharePoint troubleshooting can really be a nightmare for those who are new to the platform if it is not performed properly. The initiative for this issue came out of my late nights as a software engineer trying to troubleshoot SharePoint solutions to ship high-quality products on time.


You can get the issue for free from here.  I’ll also be waiting for your feedback for the issue