Ho inoltrato uno dei miei vecchi indirizzi email a Gmail. Vorrei creare un filtro in modo che qualsiasi messaggio a quel vecchio indirizzo sia sempre etichettato correttamente in Gmail.
Posso creare un filtro Gmail con “A:” contenente quellindirizzo, ma questo non cattura tutti i messaggi a quellindirizzo, solo quelli che sono esplicitamente indirizzati. Spesso, cè spam dove qualcun altro è il destinatario esplicito e il mio vecchio indirizzo era semplicemente Ccn “d. Il filtro “A:” non “funziona.
Quello che” vorrei “ fare è filtrare sullintestazione” Delivered-To: “. È possibile con Gmail o sono bloccato con le tre opzioni standard di Da, A, Oggetto?
Commenti
- Correlati: Crea un filtro Gmail per le notifiche del calendario
Risposta
Sì, puoi filtrare per consegnato a. Basta creare un nuovo filtro con deliveredto:[email protected]
nel campo has the words
.
Commenti
- Non molto intuitivo, ma sì. Penso che la maggior parte dei
to:
dovrebbe esseredeliveredto:
in realtà, per supportare BCC. - Funziona anche con i caratteri jolly, per ad esempio, utilizzando un indirizzo email generico in
deliveredto:*@mydomain.com
? Lo sto provando ma ci vorrà del tempo per testarlo. - Tieni presente che puoi utilizzare la barra di ricerca nella parte superiore di Gmail per creare la tua ricerca avanzata, quindi fai clic sulla freccia alla fine della barra di ricerca e seleziona ” Crea filtro con questa ricerca. ”
- Questo non risolve il problema per le intestazioni diverse da Delivered-To ? (Supponi di cercare le intestazioni Invio automatico o Precedence)
- ‘ è piuttosto odioso che il testo dellintestazione sia ” Consegnato a: ” mentre il campo ” ha ” elimina il campo ‘ – ‘ per rendere ” deliverto: “.
Risposta
Di seguito è riportato un elenco di tutti gli operatori avanzati:
da:
a:
oggetto:
OR
– (trattino)
etichetta:
ha: allegato
elenco:
nomefile:
“” (virgolette)
()
in: ovunque
in: posta in arrivo
in: cestino
in: spam
è: importante
è: stella
è: non letto
è: letto
ha: stella gialla
ha: stella rossa
ha: stella arancione
ha: stella verde
ha: blue-star
ha: purple-star
ha: red-bang
ha: orange-guillemet
ha: yellow-bang
ha: green- check
ha: blue-info
has: purple-question
cc:
bcc:
dopo:
prima:
più vecchi:
più recenti:
old_than:
newer_than:
è: chat
consegnato a:
cerchio:
ha: cerchio
categoria:
taglia:
più grande:
più piccolo:
+ (segno più)
rfc822msgid:
has: userlabels
has: nouserlabels
[ source ]
Commenti
- Grazie. Anche le loro pagine rendono difficile determinare se un operatore NOT
-
potrebbe funzionare su indirizzi con caratteri jolly, ad esempio:-*@mydomain.com
nelTo:
campo
Risposta
- vai a https://script.google.com e crea un nuovo Google Apps Script
-
seleziona lopzione “Crea script per Gmail”
- questo creerà un progetto di script
- questo creerà uno script chiamato
Code.gs
- questo creerà funzioni di esempio, una chiamata
processInbox
-
salva il progetto
- personalizza lo script e provalo finché non sei soddisfatto
-
trova il pulsante “trigger di progetto personalizzato”
- questo ti permetterà di eseguire lo script su un timer (ad es. ogni giorno o ogni minuto )
Esempio:
processInbox
Questa funzione itererà su tutti i messaggi nella Posta in arrivo.
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); } } }
Vai oltre e chiama GmailApp.search()
se vuoi fare qualcosa di stravagante invece di GmailApp.getInboxThreads()
.
processMessage
Questa funzione si occuperà dellelaborazione di un singolo messaggio; ottieni il contenuto grezzo con getRawContent()
e prova a trovare la tua intestazione lì, se è lì, tagga il messaggio.
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) } }
Commenti
- La mia reazione istintiva non dimostrata è che Google avrà qualcosa in atto per fermare gli utenti ripetendo ogni minuto concerti di contenuti email grezzi. Quindi ‘ d consiglio di sostituire ” var thread = GmailApp.getInboxThreads (); ” con ” var thread = GmailApp.search (” newer_than: 1h “); ”
- Sto utilizzando
var MyEmails = GmailApp.search("is:unread in:inbox");
per cercare tutte le email nella posta in arrivo che non sono ancora state lette - @Rick – Ho scritto uno script che utilizza linterfaccia IMAP per esaminare tutti i 13 + GB nel mio account Gmail. ‘ ‘ non mi sorprenderebbe se script.google.com lo consentisse.
- A beneficio di chiunque venga a questo come stavo cercando di fare esattamente questo, puoi ‘ t aggiungere unetichetta a un messaggio, solo al thread, quindi ‘ Dovrai fare
message.getThread().addLabel(GMailApp.getUserLabelByName("Some Label"))
- Puoi ottenere lintestazione del messaggio, che potrebbe essere migliore della ricerca nel corpo, soprattutto per i messaggi con allegati.
Risposta
Puoi utilizzare loperatore deliveredto:
nel Has the words
campo durante la creazione di un filtro, come indicato da @mvime. Tuttavia, non tutti i provider di posta elettronica aggiungono Delivered-to
allintestazione dellemail, quindi un modo più affidabile è inoltrare [email protected]
a [email protected]
e filtra per deliveredto:([email protected])
.