PR_SPAM_TRUSTED_SENDERS_W и PR_SPAM_BLOCKED_SENDERS - PullRequest
0 голосов
/ 18 сентября 2018

Я немного поиграл с "PR_SPAM_BLOCKED_SENDERS" ("http://schemas.microsoft.com/mapi/proptag/0x6106001F") и использованием VBA для манипулирования / обновления моего списка спама в режиме реального времени в OL (o365), и он прекрасно работает. Я давно забылкак и где я достал проптаг для него, но я как-то сделал, и теперь мне нужно также достать безопасный список (PR_SPAM_TRUSTED_SENDERS_W), но единственный проптаг ("http://schemas.microsoft.com/mapi/proptag/0x001f0418") я нашелпока что терпит неудачу: - (

Можете ли вы помочь мне здесь - какой правильный проптаг?

Вот некоторый базовый код, который отлично работает для заблокированных (PR_SPAM_BLOCKED_SENDERS), но не безопасный(PR_SPAM_TRUSTED_SENDERS_W):

  Const PR_SPAM_TRUSTED_SENDERS_W = "http://schemas.microsoft.com/mapi/proptag/0x001f0418"
  Const PR_SPAM_BLOCKED_SENDERS = "http://schemas.microsoft.com/mapi/proptag/0x6106001F"

  Set oStorage = oInbox.GetStorage("Junk E-mail Rule", olIdentifyBySubject)
  Set oPropAcc = oStorage.propertyAccessor
  sBlockedSenders = oPropAcc.GetProperty(PR_SPAM_BLOCKED_SENDERS)
  Debug.Print sBlockedSenders 

Заранее большое спасибо!

С наилучшими пожеланиями,

Бьярне Дейн

1 Ответ

0 голосов
/ 19 сентября 2018

Данные хранятся в двоичном свойстве PR_EXTENDED_RULE_CONDITION - посмотрите на правило с помощью OutlookSpy - перейдите в папку «Входящие», нажмите кнопку IMAPIFolder, найдите скрытое сообщение правила в «Связанное содержимое»", откройте сообщение.Выберите свойство PR_EXTENDED_RULE_CONDITION - OutlookSpy проанализирует его и отобразит его данные.Вы также можете взглянуть на IMAPIFolder |Вкладка PR_RULES_TABLE.

Вы можете либо проанализировать это свойство, либо использовать Погашение - оно предоставляет объект RDOJunkEmailOptions :

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set JunkOptions = Session.JunkEmailOptions
for each vAddress in JunkOptions.TrustedSenders
  Debug.Print vAddress
next

В случаепочтовый ящик Exchange, вот как выглядит правило:

rt : RES_AND
  cRes : 2
  lpRes : 
    rt : RES_OR
      cRes : 2
      lpRes : 
        rt : RES_OR
          cRes : 1
          lpRes : 
            rt : RES_CONTENT
            resContent : 
              ulFuzzyLevel : FL_FULLSTRING FL_IGNORECASE
              ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
              lpProp :
                ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                Value : blocked.sender@demo.com

        rt : RES_AND
          cRes : 2
          lpRes : 
            rt : RES_OR
              cRes : 2
              lpRes : 
                rt : RES_AND
                  cRes : 2
                  lpRes : 
                    rt : RES_EXIST
                    res.resExist :
                      ulPropTag : PR_CONTENT_FILTER_SCL (0x40760003)

                    rt : RES_PROPERTY
                    res.resProperty :
                      relop : RELOP_GT
                      ulPropTag : PR_CONTENT_FILTER_SCL (0x40760003)
                      lpProp :
                        ulPropTag : PR_CONTENT_FILTER_SCL (0x40760003)
                        Value : -1

                rt : RES_OR
                  cRes : 0
                  lpRes : 

            rt : RES_NOT
            res.resNot :
              lpRes : 
                rt : RES_OR
                  cRes : 2
                  lpRes : 
                    rt : RES_OR
                      cRes : 1
                      lpRes : 
                        rt : RES_CONTENT
                        resContent : 
                          ulFuzzyLevel : FL_SUBSTRING FL_IGNORECASE
                          ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                          lpProp :
                            ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                            Value : @safe.sender.domain.com

                    rt : RES_SUBRESTRICTION
                    resSub : 
                      ulSubObject : PR_MESSAGE_RECIPIENTS
                      lpRes :     rt : RES_OR
                          cRes : 0
                          lpRes : 

    rt : RES_NOT
    res.resNot :
      lpRes : 
        rt : RES_OR
          cRes : 3
          lpRes : 
            rt : RES_OR
              cRes : 5
              lpRes : 
                rt : RES_CONTENT
                resContent : 
                  ulFuzzyLevel : FL_FULLSTRING FL_IGNORECASE
                  ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                  lpProp :
                    ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                    Value : safe.sender.1@demo.com

                rt : RES_CONTENT
                resContent : 
                  ulFuzzyLevel : FL_FULLSTRING FL_IGNORECASE
                  ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                  lpProp :
                    ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                    Value : safe.sender.2@demo.com

                rt : RES_CONTENT
                resContent : 
                  ulFuzzyLevel : FL_FULLSTRING FL_IGNORECASE
                  ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                  lpProp :
                    ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                    Value : safe.sender.3@demo.com

                rt : RES_CONTENT
                resContent : 
                  ulFuzzyLevel : FL_FULLSTRING FL_IGNORECASE
                  ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                  lpProp :
                    ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                    Value : safe.sender.4@demo.com

                rt : RES_CONTENT
                resContent : 
                  ulFuzzyLevel : FL_FULLSTRING FL_IGNORECASE
                  ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                  lpProp :
                    ulPropTag : PR_SENDER_EMAIL_ADDRESS_W (0x0C1F001F)
                    Value : safe.sender.5@demo.com

            rt : RES_SUBRESTRICTION
            resSub : 
              ulSubObject : PR_MESSAGE_RECIPIENTS
              lpRes :     rt : RES_OR
                  cRes : 0
                  lpRes : 

            rt : RES_OR
              cRes : 0
              lpRes : 
...