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 http://www.salamandersoft.co.uk/downloads/SlkReminderEmails.zip.
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>
<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>
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))
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.
Managing Director / Founder
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 in addition to running the company and being the first point of contact for prospective customers.