1

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

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

3 ответа3

1

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

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

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

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

1

Вот. Обратите внимание, что это относится к папке "Спам" (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
0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .