Send Reminder Emails with SLK 1.6 and above

23 November, 2014 · 1 minute to read

Send Reminder Emails with SLK 1.6 and above

SLK has the built in ability to send reminder emails to learners for assignments, but, there is no built in a way to run this. However, there is a sample project in SLK\Samples\ReminderEmails which will run the functionality. The usage of this is

ReminderEmails.exe <site collection url>

This will then send reminder emails for a site collection using the email settings in slksettings.xml. This is implemented as a console project so needs to run on one of your SharePoint servers and you'll need to schedule it using Task Scheduler or similar.

I have compiled this for SharePoint 2007, 2010 and 2013 at

The default emails settings of SlkSettings are:

  <EmailSettings ReminderDays="1,7" EmailOnSubmitOff="true"> 
      <NewAssignment Subject="New Assignment: %title%"> 
          <slk:Body xmlns=""><p>You have been assigned a new piece of work: <strong>%title%</strong>.</p> 
<p><a href='%url%'>%url%</a></p></slk:Body> 
      <CancelAssignment Subject="Assignment Cancelled: %title%"> 
          <slk:Body xmlns=""><p>Assignment <strong>%title%</strong> has been cancelled.</p></slk:Body> 

The ReminderDays attribute controls when the reminders are sent. They are sent those number of days before the assignment is due. So if you wanted an email on every day for the 3 days preceding the assignment it would be ReminderDays="1,2,3".

You can also have a AssignmentReminder section to set the subject and body of the email as in NewAssignment and CancelAssignment above. Otherwise the default email settings will be used which are

    Assignment Reminder : %title% 
  <p>Assignment <strong>%title%</strong> is due on %due%.</p> 
<p><a href='%url%'>%url%</a></p>

For anyone interested the code in the console application is very simple, it literally just calls the ReminderEmails object within the SLK project.

        public static void Main(string[] arguments) 
            if (arguments == null || arguments.Length == 0 || string.IsNullOrEmpty(arguments[0])) 
                Console.WriteLine("You must pass a url of a site collection."); 
                    ReminderEmails reminder = new ReminderEmails(); 
                catch (Exception e) 

It would be pretty easy to convert this to a SharePoint timer job.

Richard Willis headshot

Written by Richard Willis

Founder / Chairman

Richard started SalamanderSoft in 2007 after a successful career as a software developer. Wanting to start his own company and with experience in integrating school systems he set out to build the best integration system for schools and to exceed customer expectations. He starting out on his own, doing all the coding, support and sales until finally the growing number of customers meant he needed to start growing the team. He is still heavily involved in coding the core Integration Suite product.

Copyright © 2022 SalamanderSoft Limited