I found this article by SharelockPoint that states that lists that are migrated from SharePoint 2007 to SharePoint 2010 using list export/import will have event receivers for both SharePoint 2007 and SharePoint 2010 on the list. The solution is to delete the old 2007 receivers. Here is the code from the article that will fix the problem of the duplicate emails.
$spWeb = Get-SPWeb -Identity http://mySP2010site/mySP2010SubSite/
$spList = $spWeb.Lists["MyList"]
$eventsCount = $spList.EventReceivers.Count
$assembly = “Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”
for ($i = 0; $i -lt $eventsCount; $i+=1)
{
write-host $spList.EventReceivers[$i].Assembly
if ($spList.EventReceivers[$i].Assembly -eq $assembly)
{
write-host “About to delete the reference”
$spList.EventReceivers[$i].Delete()
}
}
$spList.Update()
You can also solve this problem using SharePoint Manager 2010. All you have to do is:
- Go to where the site collection sits in the tree
- Go to "Lists -> My List -> Event Receivers"
- Click on each event receiver and look in the properties on the right to find out which ones use version 12.0.0.0 (SharePoint 2007).
- Right click on each one that is from SharePoint 2007 and select delete.