Est-il possible de créer un filtre Gmail qui fonctionne sur les en-têtes autres que De, À, Objet?


105

J'ai transféré une de mes très anciennes adresses e-mail à Gmail. J'aimerais créer un filtre afin que tout courrier à cette ancienne adresse soit toujours correctement étiqueté dans Gmail.

Je peux créer un filtre Gmail avec le "À:" contenant cette adresse, mais cela n'accroche pas tous les messages de cette adresse, mais uniquement ceux qui sont explicitement adressés. Souvent, il y a du spam dans lequel une autre personne est le destinataire explicite et mon ancienne adresse était simplement Cci. Le filtre "To:" ne fonctionne pas.

Ce que je veux faire est de filtre sur le « Delivered-To: » En- tête. Est-ce possible avec Gmail ou suis-je coincé avec les trois options standard de De, À, Sujet?


Réponses:


68

Oui, vous pouvez filtrer par livré à. Créez simplement un nouveau filtre avec deliveredto:youremail@address.comsur le has the wordsterrain.


Pas très intuitif, mais oui. Je pense que la plupart to:devraient être en deliveredto:réalité pour soutenir les CCC.
lapo

Cela a-t-il également fonctionné avec des caractères génériques, par exemple, en utilisant une adresse électronique fourre-tout dans deliveredto:*@mydomain.com? Je l'essaie mais je vais mettre du temps à tester.
Marcos

1
Notez que vous pouvez utiliser la barre de recherche en haut de GMail pour construire votre recherche avancée, puis cliquez sur la flèche située à la fin de la barre de recherche et sélectionnez "Créer un filtre avec cette recherche".
Feckmore

2
Cela ne résout pas le problème des en-têtes autres que Delivered-To? (Dites une recherche pour les en-têtes Soumis automatiquement ou Priorité)
Gert van den Berg

2
Il est assez désagréable que le texte d'en-tête soit "Delivered-To:" tandis que le champ "a" élimine le '-' pour donner "deliverto:".
James Bowery

36

Voici une liste de tous les opérateurs avancés:

from:
to:
subject:
OR
- (tiret)
label:
has:
liste des pièces jointes :
nom_fichier:
"" (guillemets)
()
dans: n'importe où dans: corbeille d'
arrivée
: corbeille
dans: le spam
est: important
est: starred
est: unread
est: read
a: etoile-jaune
a: etoile-rouge
a: etoile-orange
a: etoile-verte a: etoile
bleue
a: etoile-violet
a: red-bang
a: orange-guillemet
a: yellow-bang
a: vert- check
a: blue-info
a: purple-question
cc:
bcc:
après:
avant:
plus:
nouvelle:
older_than:
newer_than:
est: chat
deliveredto:
cercle:
a: cercle
Catégorie:
Taille:
plus:
plus petit:
+ (signe plus)
rfc822msgid:
a: userlabels
a: nouserlabels

[ source ]


Merci. Même leurs pages rendent difficile de déterminer si un opérateur NOT -travaillerait sur des adresses génériques, par exemple: -*@mydomain.comsur le To:terrain
Marcos

31
  1. Accédez à la page https://script.google.com et créez un nouveau script Google Apps.

nouveau script google apps.

  1. sélectionnez l'option "Créer un script pour Gmail"

    • cela va créer un projet de script
    • cela va créer un script appelé Code.gs
    • cela créera des exemples de fonctions, l’un nommé processInbox
  2. enregistrer le projet

  3. personnaliser le script et le tester jusqu'à ce que vous soyez satisfait
  4. trouver le bouton "déclencheurs du projet personnalisé"

    bouton de déclenchement personnalisé

    • cela vous permettra d'exécuter le script sur une minuterie (par exemple, tous les jours ou toutes les minutes )

Exemple:

processInbox

Cette fonction parcourra tous les messages de la boîte de réception.

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);
      }
   }
}

Allez un peu plus loin et appelez GmailApp.search()si vous voulez faire quelque chose d'extraordinaire au lieu de GmailApp.getInboxThreads().

processMessage

Cette fonction se chargera de traiter un seul message. vous obtenez le contenu brut avec getRawContent()et essayez de trouver votre en-tête, s'il est dedans, marquez le message.

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)
  }
}

11
Ma réaction intestinale non prouvée est que Google mettra en place quelque chose pour empêcher les utilisateurs de lire en boucle des contenus bruts contenant du courrier électronique brut chaque minute. Je conseillerais donc de remplacer "var threads = GmailApp.getInboxThreads ();" avec "var threads = GmailApp.search (" newer_than: 1h ");"
Rick

J'utilise var MyEmails = GmailApp.search("is:unread in:inbox");pour rechercher dans la boîte de réception tous les courriels qui ne sont pas encore lus
Ronen Ariely

@Rick - J'ai écrit un script qui utilise l'interface IMAP pour parcourir les 13 + Go de mon compte gmail. «Cela ne m'étonnerait pas si script.google.com le permettait.
broofa

1

Vous pouvez utiliser l' deliveredto:opérateur dans le Has the wordschamp lors de la création d'un filtre, comme indiqué par @mvime. Cependant, tous les fournisseurs de messagerie append Delivered-toà l' en- tête de courrier électronique, donc une façon plus fiable est de transmettre you@oldemail.comà you+oldemail@gmail.comet filtrer deliveredto:(you+oldemail@gmail.com).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.