web-dev-qa-db-ja.com

Gmailフィルターで「not」を使用する方法は?

機械で生成されたメールに応答するGoogle App Scriptを作成する必要があります。ただし、1人の同僚に送信されたメールや、責任の範囲外の特定のトピックが含まれているメールは除きます。

私はユーザーXからのすべてのメールを含むGmailApp.search AP​​Iを使用しようとしましたが、ユーザーYに宛てられたメールNOR "junk_term"を含むものは使用しませんでした。メールをアーカイブして、受信トレイをスキップしたい。

次のようなクエリを作成しました。

 "from:([email protected]) -{[email protected] OR junk_term}"

しかし、結果を返さないようです。

38
pterandon

この問題を解決するには、次の2つのことを理解する必要があります。

1)フィルターによって既存のメールにラベルが付けられている場合、そのフィルターが削除されてもラベルは残ります。ラベル自体を削除してから、編集内容を「取得」するために新しいフィルターを再作成する必要があります。

2)Gmailフィルターシステムにバグがあります。次のような複雑なブール値を設定しようとすると

from:[email protected] -to:[email protected] -junk_term

最初の検索では正常に機能しますが、それを使用してフィルターを作成すると、用語、特にNOTが文字化けします。

正しい構文( chenghuayang のヒント)は、toとfromを無視することです。

[email protected] [email protected] -junk_term
41
pterandon

これらのラベルに基づいて、ラベルを使用してメールにフラグを付け、それに応じて処理することができます。

  1. from: [email protected]に一致してからラベルLabel_Xを適用します
  2. from: [email protected]に一致してからラベルLabel_Yを適用します
  3. junk_termに一致してからラベルLabel_Yを適用します
  4. label:label_X AND -label:Label_Yに一致してからrespondに一致する

最後のルールの条件をIncludes the wordsフィールドに追加する必要があります。

ここ はさらに属性のリストです。

4