LoginSignup
1
1

More than 1 year has passed since last update.

直近受信した送信元メールアドレスを一覧化する

Posted at

はじめに

こんにちは。今年はまだ美味しいスイカも美味しい桃も食べられていません...。食べて、「あ、スイカだわ。」と思うレベルはいいんです、美味しいのをいただきたい、筆者です :bow:

さて、今回はほっとくと無法地帯になってしまうGmailで、フィルタを整理したいと思い、一旦送信元メールアドレスの一覧を作成しようと思います。

直近受信した送信元メールアドレスを一覧化する

受信ボックスのメールを対象にスプレッドシートに書き込みを行います。

また、今回一覧化する目的は、後続にフィルタ適用をしたいため、その振り分けができるように、件名も一緒に取得しています。

const main = () => {
  const data = []
  data.push(['No.', 'mailAddress', 'subject'])

  GmailApp.getInboxThreads().forEach(t => {
    t.getMessages().forEach(m => {
      data.push([
        '=row()-1',
        m.getFrom().match(/([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*)/)[0],
        m.getSubject()
        ])
    })
  })

  SpreadsheetApp.getActiveSheet().getRange(1, 1, data.length, 3).setValues(data)
}

補足

getFrom()で送信元メールアドレスが取得できそうですが、実はそうではないんです :sob:

getFrom()で取得できるのは以下のような文字列で、この文字列からメールアドレス部分を抜き出す必要があります。
そのため上記スクリプトでは、正規表現でメールアドレス部分を抜き出しています。

実行結果

こんな感じになりました!
1.png

Google <no-reply@accounts.google.com>

おわりに

意外とサクッとできました。
次はフィルタを設定するのですが、手動でやるのは管理が大変なので、GASでやっていこうと思います :muscle:
GmailAppでは用意されてないので、APIを使用することになると思います :thinking:

乞うご期待:pray:

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1