Haga que Outlook ejecute automáticamente reglas en carpetas que no están en la bandeja de entrada

Haga que Outlook ejecute automáticamente reglas en carpetas que no están en la bandeja de entrada

Actualmente tengo mi Outlook configurado con Gmail. Tengo un par de reglas que definí y que se ejecutan en diferentes carpetas (etiquetas) de mi cuenta. Ya tengo filtros configurados en GMail que harán que los correos electrónicos salten la bandeja de entrada y los coloquen en las carpetas respectivas.

Cada vez que recibo un nuevo correo electrónico, en esas carpetas, mis reglas no se ejecutan (son solo para configurar categorías). Tengo que ejecutarlos manualmente. Creo que es porque los correos electrónicos no llegan primero a la bandeja de entrada sino directamente a la carpeta. ¿Existe alguna forma de hacer que Outlook ejecute reglas automáticamente en esas carpetas? Una ejecución programada también debería estar bien.

Respuesta1

Aquí lo tienes. Tenga en cuenta que esto es específico de la carpeta Basura (olFolderJunk es una constante de Outlook) y ejecutará cualquier filtro que cree con el prefijo "JUNK_FILTER_".

Es optimista y prácticamente no tiene verificación de errores, así que úselo bajo su propio riesgo. No lo uses si no lo entiendes :)

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

Respuesta2

Las categorías no funcionan correctamente en cuentas IMAP. Cualquier categoría asignada a objetos de Outlook en cuentas IMAP no se sincronizará con el servidor, por lo que solo aparecerá en ese perfil de Outlook en particular en esa cuenta de usuario en particular en esa instalación de Windows en particular. Lo único que realmente puede usar con IMAP y Outlook son los indicadores estándar de activación/desactivación (no los diferentes tipos que admite GMail o Exchange).

Las categorías están diseñadas para usarse con cuentas de Exchange, donde se pueden asignar reglas del lado del cliente y luego sincronizarlas con el servidor. También funcionarán bien con cuentas POP3, donde se asignarán categorías y los correos electrónicos se ordenarán según reglas del lado del cliente.

Como categoríaspoderasignarse (con reglas del lado del cliente) en correos electrónicos que ya se han ordenado en carpetas en un servidor Exchange (usando reglas del lado del servidor), creo que sus reglas no funcionan porque las categorías en realidad no están destinadas a usarse en correos no -Cuentas de cambio.

En mi opinión, no creo que GMail pueda usarse satisfactoriamente con ningún cliente de correo electrónico de escritorio, debido a la forma inusual en que están configurados los buzones IMAP.

Respuesta3

Una forma de hacerlo es configurar una cita recurrente que pueda activar una macro cada vez que aparece el recordatorio. La macro ejecutaría el filtro. Esto parece un poco engorroso con muchas citas en su calendario y es poco probable que lo despidan cuando lo desee. No lo he hecho personalmente, pero estoy seguro de que es posible.

Lo que yotenerLo hecho es crear una macro que ejecute cualquier filtro que tenga un nombre con un prefijo específico en una carpeta específica. La macro elige la carpeta, los filtros deciden la acción (en mi caso, 'eliminar'). Es adaptable por alguien que conozca VBA.

Después de crear la macro, agregué un botón en la barra de herramientas de Outlook que la ejecuta. Hago clic en el botón cada vez que me apetece.

Puedo publicar el código fuente si cree que puede modificarlo para adaptarlo a sus necesidades.

Respuesta4

Puedes configurar esas reglas directamente en GMail:enlace.

información relacionada