Сделайте Outlook выполненными правилами о папках неящика входящих сообщений автоматически

У меня в настоящее время есть своя установка Outlook с Gmail. У меня есть несколько правил, что я определил, которые работают на различных папках (маркировки) в моей учетной записи. У меня есть фильтры, уже устанавливают в Gmail, который заставит электронные письма пропустить ящик входящих сообщений и поместить их в соответствующие папки.

Каждый раз, когда я получаю новое электронное письмо в тех папках, мои правила не выполняются (они только для установки категорий). Я должен выполнить их вручную. Я думаю, потому что электронные письма не прибывают в ящик входящих сообщений сначала, но непосредственно в папку. Там должен так или иначе сделать перспективу выполненными правилами автоматически о тех папках? Запланированное выполнение должно также быть прекрасным.

1
задан 23.12.2010, 18:11

3 ответа

Вот. Обратите внимание, что это характерно для папки Junk (olFolderJunk, постоянный Outlook), и она выполнит любой фильтр, который я создаю снабженный префиксом "JUNK_FILTER _".

Это оптимистично и не имеет фактически никакой проверки ошибок, так используйте его в своей опасности. Не используйте его, если Вы не понимаете это :)

Sub runRulesOnJunkFolder()
    Dim st As Outlook.Store
    Dim myRules As Outlook.Rules
    Dim rl As Outlook.Rule
    Dim count As Integer
    Dim ruleList As String
    Dim rulePrefix As String
    Dim ruleFolder As Long

    '
    Dim outlookApp As Outlook.Application
    Dim objNS As NameSpace


    ruleFolder = olFolderJunk
    rulePrefix = "JUNK_FILTER_"

    Set objNS = Application.GetNamespace("MAPI")
    Set objJunkfolder = objNS.GetDefaultFolder(ruleFolder)

    ' get default store (where rules live)
    Set st = Application.Session.DefaultStore
    ' get rules
    Set myRules = st.GetRules

    ' iterate all the rules
    For Each rl In myRules
        ' determine if it's an Inbox rule and rule name prefix matches
        If rl.RuleType = olRuleReceive And Left(rl.Name, Len(rulePrefix)) = rulePrefix Then

            ' if so, run it
            rl.Execute ShowProgress:=True, Folder:=objJunkfolder
            count = count + 1
            ruleList = ruleList & vbCrLf & rl.Name
        End If
    Next

    ' tell the user what you did
    ruleList = "These rules were executed against the folder: " & objJunkfolder.Name & vbCrLf & ruleList
    MsgBox ruleList, vbInformation, "Macro: runRulesOnJunkFolder"

    Set rl = Nothing
    Set st = Nothing
    Set myRules = Nothing
    Set objJunkfolder = Nothing
    Set objNS = Nothing
End Sub
1
ответ дан 12.12.2019, 13:01

Категории не работают над учетными записями IMAP правильно. Любые категории, присвоенные объектам Outlook в учетных записях IMAP, не будут синхронизировать с сервером, так только обнаружится на том конкретном профиле Outlook на той конкретной учетной записи пользователя на той конкретной установке Windows. Единственной вещью, которую можно действительно использовать с IMAP и Outlook, являются стандартные флаги включения - выключения (не различные типы что Gmail или поддержки Exchange).

Категории предназначаются, чтобы использоваться с учетными записями Exchange, где им можно присвоить с клиентскими правилами и затем синхронизировать с сервером. Они будут также хорошо работать с учетными записями POP3, где категории были бы присвоены и электронные письма, отсортированные по клиентским правилам.

Поскольку категории могут быть присвоены (с клиентскими правилами) на электронных письмах, которые были уже отсортированы в папки на Exchange Server (использующий правила серверной стороны), я буду думать, что Ваши правила не работают, потому что категории действительно не предназначаются для использования на учетных записях не-Exchange.

Я не думаю, что Gmail может использоваться удовлетворительно с любым настольным почтовым клиентом, по-моему, из-за необычного способа, которым настраиваются почтовые ящики IMAP.

1
ответ дан 12.12.2019, 13:01

Один способ сделать это должно настроить повторяющееся назначение, которое может запустить макрос каждый раз, когда напоминание открывается. Макрос выполнил бы фильтр. Это кажется немного громоздким с большим количеством назначений в Вашем календаре, и он вряд ли будет запущен, когда Вы захотите его к. Я не сделал этого лично, но я уверен, что это возможно.

То, что я сделал, делают макрос, который выполняет любые фильтры, которые называют с определенным префиксом на определенной папке. Макрос выбирает папку, фильтры решают действие (в моем случае, 'удалите'). Это адаптируемо кем-то, кто знает VBA.

После того, как я создал макрос, я добавил кнопку на панели инструментов перспективы, которая выполняет его. Я нажимаю кнопку каждый раз, когда настроение ударяет меня.

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

0
ответ дан 12.12.2019, 13:01

Теги

Похожие вопросы