Apakah mungkin membuat filter Gmail yang berfungsi pada tajuk selain Dari, Kepada, Subjek?

105

Saya telah meneruskan salah satu alamat email saya yang lama ke Gmail. Saya ingin membuat filter sehingga setiap email ke alamat lama itu selalu dilabeli dengan benar di Gmail.

Saya dapat membuat filter Gmail dengan "To:" yang berisi alamat itu, tetapi itu tidak menangkap semua email ke alamat itu, hanya yang secara eksplisit ditangani. Seringkali, ada spam di mana orang lain adalah penerima eksplisit, dan alamat lama saya hanya Bcc'd. Filter "Kepada:" tidak berfungsi.

Apa yang aku suka lakukan adalah filter pada "Delivered-To:" header. Apakah itu mungkin dengan Gmail atau saya terjebak dengan tiga opsi standar Dari, Ke, Subjek?

Chris W. Rea
sumber

Jawaban:

68

Ya, Anda dapat memfilter dengan dikirimkan ke. Cukup buat filter baru dengan deliveredto:[email protected]di has the wordsbidang.

mvime
sumber
Tidak terlalu intuitif, tapi ya. Saya pikir sebagian besar to:harus deliveredto:benar-benar, untuk mendukung BCC.
Lapo
Apakah ini berhasil dengan wildcard juga, misalnya, menggunakan alamat email catch-all di deliveredto:*@mydomain.com? Saya mencobanya tetapi akan membutuhkan waktu untuk menguji.
Marcos
1
Perhatikan bahwa Anda dapat menggunakan bilah pencarian di bagian atas GMail untuk membangun pencarian lanjutan Anda, lalu klik panah di akhir bilah pencarian dan pilih "Buat filter dengan pencarian ini."
Feckmore
2
Ini tidak menyelesaikan masalah untuk tajuk selain dari Delivered-To? (Katakan pencarian untuk judul yang Dikirim Otomatis atau Precedence)
Gert van den Berg
2
Sangat menjengkelkan bahwa teks header adalah "Delivered-To:" sementara bidang "has" menghilangkan '-' untuk menghasilkan "terkirim ke:".
James Bowery
36

Berikut adalah daftar semua operator canggih:

dari:
ke:
subjek:
ATAU
- (tanda hubung)
label:
memiliki:
daftar lampiran :
nama file:
"" (tanda kutip)
()
di:
di mana saja di: inbox
in: trash
in: spam
adalah: penting
adalah: berbintang
adalah: belum dibaca
adalah: read
has: yellow-star
has: red-star
has: orange-star
has: green-star
has: blue-star
has: purple-star
has: red-bang
has: orange-guillemet
has: yellow-bang
has: green- check
has: blue-info
has: ungu-pertanyaan
cc:
bcc:
setelah:
sebelum:
lebih tua:
lebih baru:
older_than:
baru_baru:
adalah: chat
terkirim ke:
lingkaran:
memiliki:
kategori lingkaran :
ukuran:
lebih besar:
lebih kecil:
+ (tanda tambah)
rfc822msgid:
memiliki: userlabels
memiliki: nouserlabels

[ sumber ]

Jared Updike
sumber
Terima kasih. Bahkan halaman mereka membuat sulit untuk menentukan apakah operator TIDAK -akan bekerja pada alamat wildcard, misalnya: -*@mydomain.comdi To:lapangan
Marcos
31
  1. buka https://script.google.com dan buat Skrip Google Apps baru

skrip aplikasi google baru.

  1. pilih opsi "Buat skrip untuk Gmail"

    • ini akan membuat proyek skrip
    • ini akan membuat skrip bernama Code.gs
    • ini akan membuat fungsi sampel, yang mereka beri nama processInbox
  2. selamatkan proyek

  3. sesuaikan skrip dan uji sampai Anda puas
  4. temukan tombol "pemicu proyek khusus"

    tombol pemicu khusus

    • ini memungkinkan Anda menjalankan skrip pada timer (mis. setiap hari, atau setiap menit )

Contoh:

processInbox

Fungsi ini akan mengulangi semua pesan di Kotak Masuk.

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

Selangkah lebih maju dan teleponlah GmailApp.search()jika Anda ingin melakukan sesuatu yang mewah alih-alih GmailApp.getInboxThreads().

pesan proses

Fungsi ini akan menangani pemrosesan satu pesan; Anda mendapatkan konten mentah getRawContent()dan mencoba menemukan tajuk Anda di sana, jika ada di sana, beri tag pada pesan.

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)
  }
}
tidak tahu
sumber
11
Reaksi usus saya yang belum terbukti adalah bahwa Google akan memiliki sesuatu untuk menghentikan pengguna melakukan looping melalui pertunjukan konten email mentah setiap menit. Jadi saya sarankan untuk mengganti "var threads = GmailApp.getInboxThreads ();" dengan "var threads = GmailApp.search (" latest_than: 1h ");"
Rick
Saya menggunakan var MyEmails = GmailApp.search("is:unread in:inbox");untuk mencari semua email di kotak masuk yang belum dibaca
Ronen Ariely
@Rick - Saya menulis skrip yang menggunakan antarmuka IMAP untuk menelusuri semua 13 + GB di akun gmail saya. 'Tidak akan mengejutkan saya jika script.google.com mengizinkannya.
broofa
1

Anda dapat menggunakan deliveredto:operator di Has the wordslapangan saat membuat filter, seperti yang ditunjukkan @mvime. Namun, tidak semua penyedia email menambahkan Delivered-toke header email, sehingga cara yang lebih handal adalah untuk meneruskan [email protected]ke [email protected], dan menyaring oleh deliveredto:([email protected]).

Peng Bai
sumber