Update Specific Users Out of Oce Settings C# with Example
Using the class below, we can connect to Exchange and then set a specific user's out of office settings with UpdateUserOof: using System; using System.Web.Configuration; using Microsoft.Exchange.WebServices.Data; class ExchangeManager { private ExchangeService Service; public ExchangeManager() { var password = WebConfigurationManager.ConnectionStrings["Password"].ConnectionString; Connect("exchangeadmin", password); } private void Connect(string username, string password) { var service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); service.Credentials = new WebCredentials(username, password); service.AutodiscoverUrl("autodiscoveremail@domain.com" , RedirectionUrlValidationCallback); Service = service; } private static bool RedirectionUrlValidationCallback(string redirectionUrl) { return redirectionUrl.Equals("https://mail.domain.com/autodiscover/autodiscover.xml"); } /// /// Updates the given user's Oof settings with the given details /// public void UpdateUserOof(int oofstate, DateTime starttime, DateTime endtime, int externalaudience, string internalmsg, string externalmsg, string emailaddress) { var newSettings = new OofSettings { State = (OofState)oofstate, Duration = new TimeWindow(starttime, endtime), ExternalAudience = (OofExternalAudience)externalaudience, InternalReply = internalmsg, ExternalReply = externalmsg }; Service.SetUserOofSettings(emailaddress, newSettings); } } Update the user settings with the following: var oofState = 1; var startDate = new DateTime(01,08,2016); var endDate = new DateTime(15,08,2016); var externalAudience = 1; var internalMessage = "I am not in the office!"; var externalMessage = "I am not in the office and neither are you!" var theUser = "theuser@domain.com"; var em = new ExchangeManager(); em.UpdateUserOof(oofstate, startDate, endDate, externalAudience, internalMessage, externalMessage, theUser); Note that you can format the messages using standard html tags.