GASで複数条件と日付を使ったメール検索の方法

GASでメール検索をしたいんだけど、複数の条件や日付を指定する方法が全然わからなくて…
猫男
猫男
catman
catman
よし、catmanが「GASで複数条件と日付を使ったメール検索」のやり方を教えるとしよう!

GASで複数条件のメール検索を始めるには

GASにおいて、メールを検索する際はGmailAppクラスを利用する。

最初に、複数の条件でメールを検索する方法を学んでみよう。

Gmailでのメール検索条件を理解する

Gmailでは本来、検索条件を自由に組み合わせて使えて、『from:』『subject:』『after:』などのキーワードを使う。

GASでもこの概念を使ってメールを検索することが可能だ。

GASで複数条件を設定する

複数条件を設定するには、検索クエリを工夫する必要がある。

ズバリ、検索クエリを半角スペースでつなげてやるんだ。

この例では、「特定の送信者から指定のテーマを含むメール」を検索する。


function searchEmails() {
  const query = 'from:example@gmail.com subject:重要';
  const threads = GmailApp.search(query);

  for (let i = 0; i < threads.length; i++) {
    Logger.log(threads[i].getFirstMessageSubject());
  }
}

このスクリプトは「example@gmail.com」から送信され、テーマに「重要」を含むメールを検索する。

GASのクラスとメソッドの解説

  • GmailApp.search(query): 指定した検索クエリに基づいて、メールスレッドを取得する。
  • threads[i].getFirstMessageSubject(): 各スレッドの最初のメッセージの件名を取得する。

GASで日付条件を使ったメール検索を行う

日付を活用することで、特定の期間内のメールを検索することも簡単に可能だ。

日付条件を付ける検索方法

日付条件を指定するには、Gmailの検索条件から「after:」や「before:」を使うことができる。


function searchEmailsByDate() {
  const query = 'after:2023/01/01 before:2023/12/31';
  const threads = GmailApp.search(query);

  for (let i = 0; i < threads.length; i++) {
    Logger.log(threads[i].getFirstMessageSubject());
  }
}

このスクリプトは2023年の1月1日以降、12月31日までのメールを検索する。

GASでのクラスとメソッドの解説

  • GmailApp.search(query): 日付範囲を含む検索クエリで指定されたメールスレッドを取得する。
  • threads[i].getFirstMessageSubject(): スレッド内の最初のメッセージの件名を表示するために使われる。
すごい!GASを使ってこんなに細かくメールを検索できるなんて知らなかった!
猫男
猫男
catman
catman
少し練習すれば、もっと応用的な検索もできるようになるさ!さぁ、次は練習問題に挑戦してみようか。

練習問題

GASを使って、以下の条件を満たすメールを検索しなさい:

  • 送信者が「support@service.com」
  • 「お知らせ」というテーマを含む
  • 2023年の3月1日以降に受信されたメール

検索したメールの件名をログに出力しなさい。

 

 

解答・解説


function searchCustomEmails() {
  const query = 'from:support@service.com subject:お知らせ after:2023/03/01';
  const threads = GmailApp.search(query);

  for (let i = 0; i < threads.length; i++) {
    Logger.log(threads[i].getFirstMessageSubject());
  }
}

このスクリプトでは、送信者が「support@service.com」で、「お知らせ」というテーマを含む3月1日以降のメールを検索する。

検索した結果、各スレッドの最初のメッセージの件名をログに出力している。

完璧にできた!GASのメール検索がちゃんと理解できたよ!
猫男
猫男
catman
catman
いい仕事だ。この調子でさらに複雑なスクリプトにもチャレンジしていこう!