古いメールアドレスの1つをGmailに転送しました。古いアドレスへのメールがGmailで常に適切にラベル付けされるようにフィルターを作成したいと思います。
そのアドレスを含む "To:"を使用してGmailフィルターを作成できますが、そのアドレスへのallメールはキャッチされず、明示的にアドレス指定されたメールのみがキャッチされます。多くの場合、他の誰かが明示的な受信者であるスパムがあり、私の古いアドレスは単にBccされました。 「To:」フィルターは機能しません。
likeがしたいことは、「Delivered-To:」ヘッダーでフィルターをかけることです。 Gmailでそれは可能ですか、それともFrom、To、Subjectの3つの標準オプションに固執していますか?
はい、配信先でフィルタリングできます。 deliveredto:[email protected]
フィールドにhas the words
を持つ新しいフィルターを作成するだけです。
[Gmail用のスクリプトを作成]オプションを選択します
Code.gs
というスクリプトが作成されます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()
を呼び出します。
この関数は、単一のメッセージを処理します。 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)
}
}
@mvimeが示すように、フィルターを作成するときに、deliveredto:
フィールドでHas the words
演算子を使用できます。ただし、すべての電子メールプロバイダーがDelivered-to
を電子メールヘッダーに追加するわけではないため、[email protected]
を[email protected]
に転送し、deliveredto:([email protected])
でフィルタリングする方がより信頼性の高い方法です。