private void SetReplyFlag(IMailItem mail, IMailItem response, Verb verb)
        {
            if (!UpdateOutgoing)
            {
                return;
            }

            string id = (string)mail.GetProperty(OutlookConstants.PR_ZPUSH_MESSAGE_ID);

            using (IFolder folder = mail.Parent)
            {
                string folderId = (string)folder.GetProperty(OutlookConstants.PR_ZPUSH_SYNC_ID);
                string value    = ReplyFlags.VerbToExchange(verb) + "/" + id + "/" + folderId;
                Logger.Instance.Trace(this, "Reply header: {0}", value);
                response.SetProperty(Constants.ZPUSH_REPLY_HEADER, value);
            }
        }
        private void UpdateReplyStatus(IMailItem mail)
        {
            if (!ParseIncoming)
            {
                return;
            }
            bool update = UpdateIncoming;

            // See if the categories contain a reply flag
            ReplyFlags flags = ReplyFlags.FromCategory(mail, update);

            if (flags != null)
            {
                if (update)
                {
                    Logger.Instance.Debug(this, "Updating flags: {0}", mail.Subject);

                    // Update the mail item. This will also save the changed category list
                    flags.UpdateLocal();
                }
            }
        }