From、To、Subject以外のヘッダーで機能するGmailフィルターを作成することはできますか?


105

古いメールアドレスの1つをGmailに転送しました。古いアドレス宛のメールがGmailで常に適切にラベル付けされるようにフィルターを作成したいと思います。

そのアドレスを含む "To:"を使用してGmailフィルターを作成できますが、そのアドレスへのすべてのメールはキャッチされず、明示的にアドレス指定されたメールのみがキャッチされます。多くの場合、他の誰かが明示的な受信者であるスパムがあり、私の古いアドレスは単にBccされました。「To:」フィルターは機能しません。

私は思います好きヘッダー:行うには、「納入-TO」のフィルタです。Gmailでそれは可能ですか、それともFrom、To、Subjectの3つの標準オプションに固執していますか?


回答:


68

はい、配信先でフィルタリングできます。ただで新しいフィルタを作成するdeliveredto:youremail@address.comにはhas the words、フィールド。


あまり直感的ではありませんが、はい。私は、BCCをサポートするために、実際にはほとんどのto:はずだと思いますdeliveredto:
-lapo

これはワイルドカードでも機能しましたか?たとえば、キャッチオールメールアドレスを使用してdeliveredto:*@mydomain.com?試していますが、テストに時間がかかります。
マルコス

1
GMailの上部にある検索バーを使用して高度な検索を構築し、検索バーの端にある矢印をクリックして、[この検索で​​フィルターを作成]を選択できることに注意してください。
フェックモア

2
これは、Delivered-To以外のヘッダーの問題を解決しませんか?(自動送信ヘッダーまたは優先順位ヘッダーを検索してください)
ゲルトヴァンデンバーグ

2
「has」フィールドが「-」を排除して「deliveredto:」を生成するのに対して、ヘッダーテキストが「Delivered-To:」であることはかなり不快です。
ジェームズバワリー

36

すべての高度な演算子のリストは次のとおりです。

from:
to:
subject:
OR-
(ハイフン)
label:
has:attachment
list:
filename:
""(quotes)
()
in:anywhere
in:inbox
in:trash
in:spam
is:important
is:starred
is:unread
is:読む
:黄色の星
は持っている:赤の星
は持っている:オレンジの星
は持っている:緑の星
は持っている:青の星
は持っている:紫の星
は持っている:赤のバング
は持っている:オレンジのギエメ
は持っている:黄色のバング
は持っている:緑-チェック
has:blue-info
has:purple-question
cc:
bcc:
後:
前:
古い:
新しい:
older_than:
:newer_than
です:チャット
:DeliveredToのを
円を:
あり:サークル
カテゴリ:
サイズ:
大規模:
小さい:
+(プラス記号)
rfc822msgidを:
あり:userlabelsが
ありますnouserlabelsを

[ ソース ]


ありがとう。でも、自分のページには、NOT演算子があれば、それは難しいかを決定するために作る-ワイルドカードアドレス、例えば上で動作します:-*@mydomain.comTo:フィールド
マルコス

31
  1. https://script.google.comにアクセスして、新しいGoogle Appsスクリプトを作成します

新しいGoogle Appsスクリプト。

  1. [Gmail用のスクリプトを作成]オプションを選択します

    • これにより、スクリプトプロジェクトが作成されます
    • これにより、というスクリプトが作成されます Code.gs
    • これにより、名前が付けられたサンプル関数が作成されます processInbox
  2. プロジェクトを保存する

  3. スクリプトをカスタマイズし、満足するまでテストする
  4. 「カスタムプロジェクトのトリガー」ボタンを見つける

    カスタムトリガーボタン

    • これにより、タイマーでスクリプトを実行できます(例:毎日、または毎分

例:

processInbox

この関数は、受信ボックス内のすべてのメッセージを反復処理します。

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

さらに一歩進んで、のGmailApp.search()代わりに何かおしゃれなことをしたい場合に電話してくださいGmailApp.getInboxThreads()

processMessage

この関数は、単一のメッセージを処理します。生のコンテンツを取得し、getRawContent()そこにあるヘッダーを見つけようとします。ヘッダーがある場合は、メッセージにタグを付けます。

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
私の証明されていない腸の反応は、ユーザーがギグに相当する未加工の電子メールコンテンツを毎分ループするのを止めるための場所をGoogleが用意していることです。したがって、「var threads = GmailApp.getInboxThreads();」を置き換えることをお勧めします with "var threads = GmailApp.search(" newer_than:1h ");"
リック

私が使用していますvar MyEmails = GmailApp.search("is:unread in:inbox");、まだ読んでない受信トレイ内のすべてのメールを検索するために
Ronen氏Ariely

@Rick-IMAPインターフェイスを使用して、Gmailアカウントの13 GB以上をすべて処理するスクリプトを作成しました。「script.google.comで許可されていても驚かないでしょう。
ブローファ

1

@mvimeが示すように、フィルターを作成するときdeliveredto:Has the wordsフィールドで演算子を使用できます。ただし、すべての電子メールプロバイダーDelivered-toが電子メールヘッダーに追加するわけではないため、より信頼性の高い方法は、に転送you@oldemail.comyou+oldemail@gmail.com、でフィルタリングすることdeliveredto:(you+oldemail@gmail.com)です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.