¿Es posible crear un filtro de Gmail que funcione en encabezados que no sean Desde, Hasta, Asunto?

105

Reenvié una de mis direcciones de correo electrónico realmente antiguas a Gmail. Me gustaría crear un filtro para que cualquier correo a esa dirección anterior siempre se etiquete correctamente en Gmail.

Puedo crear un filtro de Gmail con el "Para:" que contiene esa dirección, pero que no captura todos los correos a esa dirección, solo los que están explícitamente dirigidos. A menudo, hay spam donde otra persona es el destinatario explícito, y mi dirección anterior era simplemente Bcc'd. El filtro "Para:" no funciona.

Lo que me gustaría hacer es filtrar en el encabezado "Entregado a:". ¿Es posible con Gmail o estoy atascado con las tres opciones estándar de De, A, Asunto?

Chris W. Rea
fuente

Respuestas:

68

Sí, puede filtrar por entregado a. Simplemente cree un nuevo filtro con deliveredto:[email protected]en el has the wordscampo.

mvime
fuente
No muy intuitivo, pero sí. Creo que la mayoría to:debería ser deliveredto:, en realidad, para apoyar los BCC.
lapo
¿Esto también ha funcionado con comodines, por ejemplo, usando una dirección de correo electrónico generaldeliveredto:*@mydomain.com ? Lo estoy intentando pero me tomará tiempo probarlo.
Marcos
1
Tenga en cuenta que puede usar la barra de búsqueda en la parte superior de GMail para construir su búsqueda avanzada, luego haga clic en la flecha al final de la barra de búsqueda y seleccione "Crear filtro con esta búsqueda".
Feckmore
2
¿Esto no resuelve el problema para encabezados que no sean Delivered-To? (Diga una búsqueda de los encabezados de Auto-envío o Precedencia)
Gert van den Berg
2
Es bastante desagradable que el texto del encabezado sea "Entregado a:" mientras que el campo "tiene" elimina el '-' para producir "entregado a:".
James Bowery
36

Aquí hay una lista de todos los operadores avanzados:

de:
a:
asunto:
OR
- (guión)
etiqueta:
tiene:
lista de archivos adjuntos :
nombre de archivo:
"" (comillas)
()
en:
en cualquier lugar en: bandeja
de entrada en: basura
en: spam
es: importante
es: destacado
es: no leído
es: leer
tiene: estrella amarilla tiene: estrella
roja tiene: estrella
naranja tiene: estrella
verde tiene: estrella
azul
tiene: estrella púrpura
tiene: explosión roja
tiene: guillemet naranja
tiene: explosión amarilla
tiene: verde el cheque
tiene: blue-info
tiene: purple-question
cc:
bcc:
después:
antes:
mayores:
más reciente:
older_than:
newer_than:
es: chatear
DeliveredTo:
círculo:
tiene: Círculo de
la categoría:
Tamaño:
mayor:
menor:
+ (signo más)
rfc822msgid:
tiene: userlabels
tiene: nouserlabels

[ fuente ]

Jared Updike
fuente
Gracias. Incluso sus páginas hacen que sea difícil determinar si un operador NOT -trabajaría en direcciones comodín, por ejemplo: -*@mydomain.comen el To:campo
Marcos
31
  1. vaya a https://script.google.com y cree un nuevo script de Google Apps

nuevo script de aplicaciones de google.

  1. seleccione la opción "Crear script para Gmail"

    • esto creará un proyecto de script
    • esto creará un script llamado Code.gs
    • esto creará funciones de muestra, una de ellas llamada processInbox
  2. guardar el proyecto

  3. personalizar el script y probarlo hasta que esté satisfecho
  4. encuentra el botón "disparadores del proyecto personalizado"

    botón de disparo personalizado

    • esto le permitirá ejecutar el script en un temporizador (por ejemplo, diariamente o cada minuto )

Ejemplo:

processInbox

Esta función iterará sobre todos los mensajes en la Bandeja de entrada.

function processInbox() {
   // process all recent threads in the Inbox (see comment to this answer)
   var threads = GmailApp.search("newer_than:1h");
   for (var i = 0; i < threads.length; i++) {
      // get all messages in a given thread
      var messages = threads[i].getMessages();
      for (var j = 0; j < messages.length; j++) {
         var message = messages[j];
         processMessage(message);
      }
   }
}

Vaya un paso más allá y llame GmailApp.search()si quiere hacer algo elegante en lugar de hacerlo GmailApp.getInboxThreads().

processMessage

Esta función se encargará de procesar un solo mensaje; obtienes el contenido sin procesar getRawContent()e intentas encontrar tu encabezado allí, si está allí, etiqueta el mensaje.

function processMessage(message) {
  var body = message.getRawContent();
  if (body.indexOf("X-Custom-Header: some-custom-value") > -1) {
    // do stuff with message (e.g. add label)
  }
}
dnozay
fuente
11
Mi reacción instintiva no probada es que Google tendrá algo en su lugar para evitar que los usuarios recorran cada minuto contenido de correo electrónico en bruto por valor de conciertos. Por lo tanto, recomendaría reemplazar "var threads = GmailApp.getInboxThreads ();" con "var threads = GmailApp.search (" newer_than: 1h ");"
Rick
Estoy usando var MyEmails = GmailApp.search("is:unread in:inbox");para buscar todos los correos electrónicos en la bandeja de entrada que aún no se han leído
Ronen Ariely
@Rick: escribí un script que usa la interfaz IMAP para recorrer los 13+ GB en mi cuenta de gmail. "No me sorprendería si script.google.com lo permitiera.
broofa
1

Puede utilizar el deliveredto:operador en el Has the wordscampo al crear un filtro, como lo indicó @mvime. Sin embargo, no todos los proveedores de correo electrónico anexan Delivered-toa la cabecera del correo electrónico, por lo que una forma más fiable es reenviar [email protected]a [email protected], y filtrar por deliveredto:([email protected]).

Peng Bai
fuente