I recently got the question whether it was possible to change the e-mail notification settings from the newsfeed functionality in SharePoint 2013 for all users – for those of you who don’t know this functionality check out Get email notifications about newsfeed items. Out of the box you will get a lot of e-mails for different actions on your newsfeed such as when someone has started following you, mentions, replies to conversations or community discusion posts, etc …
It actually is a UserProfile property called EmailOptin which controls this behavior but unfortunately there is not a lot of documentation about this property. The property contains an integer value that you need to set – the logic seems to be a bit strange but you need to set the value of the bit to 1 if you want the checkbox to be unchecked – the next example shows if you only want to
| Integer value to uncheck | |
| Someone has started following me | 2 |
| Suggestions for people and keywords I might be interested in | 4 |
| Someone has mentioned me | 8 |
| Someone has replied to a conversation that I started | 16 |
| Somone replied to a conversation that I replied to | 32 |
| Someone replied to my community discussion post | 64 |
This means that if you only want to uncheck the first option (Someone has started following me) you need to set it SPS-EmailOptin to 2. Listed below is a code sample for a console app which runs on the SharePoint server and which sets the SPS-EmailOptin property.
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: using System.Threading.Tasks;
6: using Microsoft.SharePoint;
7: using Microsoft.Office.Server.UserProfiles;
8: 9: namespace UserProfilesServerOM
10: {11: class Program
12: {13: static string strUrl = "http://portal.hpw.local";
14: static string strAccount = @"hpw\joris";
15: 16: static void Main(string[] args)
17: { 18: 19: // Get SPSite and service context from string
20: SPSite site = new SPSite(strUrl);
21: SPServiceContext serviceContext = SPServiceContext.GetContext(site); 22: 23: // Initialize user profile config manager object
24: UserProfileManager upm = new UserProfileManager(serviceContext);
25: 26: 27: //To set prop values on user profile
28: UserProfile u = upm.GetUserProfile(strAccount);29: string sPropName = "SPS-EmailOptin";
30: //126 unchecks all options
31: u[sPropName].Value = 2; 32: u.Commit(); 33: 34: Console.WriteLine("Hit any key to continue...");
35: Console.ReadLine(); 36: } 37: } 38: }
No comments:
Post a Comment