Не могу прочитать PR_SECURITY_FLAGS, получить случайные числа - PullRequest
0 голосов
/ 18 февраля 2019

Я попытаюсь прочитать значения из PR_SECURITY_FLAGS на Application_ItemSend, чтобы увидеть, является ли почта "Нормальная", "Зашифрованная" или "Подписанная"

Если я отправляю без шифрования или с подписью, я получаю 0 каждый раз.

Но когда я переключаюсь между ними, у меня возникает проблема.

Например:

Зашифрованный проверенный результат 1

Снять отметку Зашифрованный, Подписанный проверенный результат 34

Снимите флажок Подписано, Зашифровано проверено, результат 33 (Разве это не должно быть 1?)

Снимите флажок Зашифровано, Подписано не проверено, результат 32 (Разве это не должно быть 0?)

string PR_SECURITY_FLAGS = @"http://schemas.microsoft.com/mapi/proptag/0x6E010003";

             long str = mailItem.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS);
            Debug.WriteLine(str);

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Спасибо Дмитрию Стребленченко

Поскольку вы должны игнорировать некоторые биты, он работает с кодом:

string PR_SECURITY_FLAGS = @"http://schemas.microsoft.com/mapi/proptag/0x6E010003";

             long str = mailItem.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS);

            if (str > 31)
            {
                str = str % 32;
            }
                Debug.WriteLine(str);

Флаги:

NONE (= 0)

SECFLAG_ENCRYPTED (= 1)

SECFLAG_SIGNED (= 2)

SECFLAG_ENCRYPTED & SECFLAG_SIGNED (= 3)

0 голосов
/ 18 февраля 2019

Вас интересуют только два бита SECFLAG_ENCRYPTED (= 1) и SECFLAG_SIGNED (= 2)

34 = 32 + 2 
33 = 32 + 1

Существует недокументированный битовый флаг со значением 32. Вы должны игнорировать его ипроверяйте только те биты, о которых вы знаете.

...