Поделиться через


Automatic reply: Your Out of Office code may no longer work

In Exchange 2007, Out of Office (OOF) was improved and how the mechanism worked was changed.  To support legacy Outlook 2003 clients which didn’t use SetUserOofSettings like Outlook 2007 and Outlook Web App 2007 did, the Out of Office Mailbox Assistant was created. The OOF Mailbox Assistant had several responsibilities, here are the ones relevant to the situation:

  • Detect when the legacy OOF message and rule were changed
  • Apply any changes to the legacy OOF message and rule to the new OOF message
  • Update some internal properties as necessary, for example the start and end time of OOF.

Since Exchange Server 2013 does not support Outlook 2003 as a client, this assistant was seen as unnecessary and removed.  The responsibilities of the mailbox assistant were merged into the SetUserOofSettings operation.

Extended MAPI Developers using KB 308281 as their basis for updating Out of Office in their applications may have noticed that the code no longer works in Exchange Server 2013. This is because the Out of Office Mailbox Assistant was removed and therefore won't do the behind the scenes work to keep the legacy Out of Office message (the one used in the KB) and the new one created in Exchange 2007 in sync.  Since Exchange 2013 only looks at the Exchange 2007 based Out of Office message any changes to the legacy Out of Office message rule are ignored.

To fix this, the recommended approach is to use Exchange Web Services (EWS) and the SetUsersOofSettings operation.

SetUserOofSettings

msdn.microsoft.com/en-us/library/office/aa580294(v=exchg.150).aspx