Przekazałem jeden z moich naprawdę starych adresów e-mail do Gmaila. Chcę utworzyć filtr, aby każda poczta wysyłana na ten stary adres była zawsze prawidłowo oznaczone w Gmailu.
Mogę utworzyć filtr Gmaila z elementem „Do:” zawierającym ten adres, ale nie przechwytuje on wszystkich wiadomości na ten adres, tylko te które są wyraźnie adresowane. Często jest spam, którego adresatem jest ktoś inny, a mój stary adres to po prostu UDW „d. Filtr „Do:” nie działa.
To, co chciałbym zrobić, to odfiltrować nagłówek „Delivered-To:”. Czy to możliwe w Gmailu, czy też utknąłem z trzema standardowymi opcjami Od, Do i Temat?
Komentarze
- Powiązane: Utwórz filtr Gmaila dla powiadomień kalendarza
Odpowiedź
Tak, możesz filtrować według dostarczonych do. Po prostu utwórz nowy filtr z deliveredto:[email protected]
w polu has the words
.
Komentarze
- Niezbyt intuicyjne, ale tak. Myślę, że większość
to:
powinna być w rzeczywistoścideliveredto:
, aby obsługiwać UDW. - Czy to działało również z symbolami wieloznacznymi, na przykład używając adresu catch-all w
deliveredto:*@mydomain.com
? Próbuję, ale przetestowanie zajmie trochę czasu. - Pamiętaj, że możesz skorzystać z paska wyszukiwania u góry Gmaila, aby utworzyć wyszukiwanie zaawansowane, a następnie kliknąć strzałkę na końcu paska wyszukiwania i wybrać ” Utwórz filtr za pomocą tego wyszukiwania. ”
- Nie rozwiązuje to problemu z nagłówkami innymi niż Dostarczone do ? (Powiedz, aby wyszukać nagłówki przesłane automatycznie lub Pierwszeństwo)
- To ' jest dość nieprzyjemne, że tekst nagłówka to ” Delivered-To: „, podczas gdy ” ma ” eliminuje pole ' – ', aby uzyskać ” dostarczone do: „.
Odpowiedź
Oto lista wszystkich zaawansowanych operatorów:
od:
do:
temat:
LUB
– (łącznik)
etykieta:
has: załącznik
lista:
nazwa_pliku:
„” (cudzysłowy)
()
w: wszędzie
w: skrzynce odbiorczej
w: kosz
w: spam
jest: ważne
to: gwiazdka
to: nieprzeczytane
to: przeczytane
ma: żółta-gwiazdka
ma: czerwona-gwiazdka
ma: pomarańczową-gwiazdkę
ma: zieloną-gwiazdkę
ma: niebiesko-gwiazdka
ma: fiolet-gwiazdka
ma: czerwono-bang
ma: pomarańczowo-gilemet
ma: żółto-huk
ma: zielono- check
has: blue-info
has: purple-question
cc:
bcc:
after:
before:
starszy:
nowszy:
senior_than:
newer_than:
to: czat
dostarczony do:
krąg:
has: krąg
kategoria:
rozmiar:
większy:
mniejszy:
+ (znak plus)
rfc822msgid:
has: userlabels
has: nouserlabels
[ źródło ]
Komentarze
- Dziękujemy. Nawet ich strony utrudniają określenie, czy operator NOT
-
działałby na adresach z symbolami wieloznacznymi, np .:-*@mydomain.com
w
Odpowiedź
- przejdź do https://script.google.com i utwórz nowy skrypt Aplikacji Google
-
wybierz opcję „Utwórz skrypt dla Gmaila”.
- spowoduje to utworzenie projektu skryptu
- spowoduje to utworzenie skryptu o nazwie
Code.gs
- spowoduje to utworzenie przykładowych funkcji, w tym jednej o nazwie
processInbox
-
zapisz projekt
- dostosuj skrypt i testuj go, aż będziesz zadowolony
-
znajdź przycisk „wyzwalacze projektu niestandardowego”
- umożliwi to uruchomienie skryptu na zegarze (np. codziennie lub co minutę )
Przykład:
processInbox
Ta funkcja sprawdzi wszystkie wiadomości w skrzynce odbiorczej.
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); } } }
Idź o krok dalej i zadzwoń pod numer GmailApp.search()
, jeśli chcesz zrobić coś wymyślnego zamiast GmailApp.getInboxThreads()
.
processMessage
Ta funkcja zajmie się przetwarzaniem pojedynczej wiadomości; otrzymujesz surową zawartość za pomocą getRawContent()
i spróbuj znaleźć tam swój nagłówek, jeśli tam jest, oznacz wiadomość.
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) } }
Komentarze
- Moją niesprawdzoną reakcją instynktu jest to, że Google będzie miało coś, co powstrzyma użytkowników co minutę przegląda nieprzetworzone treści e-mailowe. Dlatego ' radzę zastąpić ” var thread = GmailApp.getInboxThreads (); ” z ” var thread = GmailApp.search (” newer_than: 1h „); ”
- Używam
var MyEmails = GmailApp.search("is:unread in:inbox");
, aby przeszukiwać wszystkie e-maile w skrzynce odbiorczej, które nie zostały jeszcze przeczytane - @Rick – Napisałem skrypt, który używa interfejsu IMAP, aby przejść przez wszystkie 13 + GB na moim koncie Gmail. ' Nie ' nie zdziwiłbym się, gdyby skrypt.google.com na to pozwolił.
- Z korzyścią dla każdego, kto przyjdzie do tego tak, jak próbowałem zrobić dokładnie to, możesz ' dodać etykietę do wiadomości, tylko do wątku, więc ' będzie trzeba zrobić
message.getThread().addLabel(GMailApp.getUserLabelByName("Some Label"))
- Możesz uzyskać nagłówek wiadomości, który może być lepszy niż przeszukiwanie treści, szczególnie w przypadku wiadomości z załącznikami.
Odpowiedź
Możesz użyć operatora deliveredto:
w Has the words
podczas tworzenia filtru, jak wskazano w @mvime. Jednak nie wszyscy dostawcy poczty e-mail dołączają Delivered-to
do nagłówka wiadomości e-mail, więc bardziej niezawodnym sposobem jest przekazanie [email protected]
do [email protected]
i filtruj według deliveredto:([email protected])
.