はじめに
こんにちは。今年はまだ美味しいスイカも美味しい桃も食べられていません...。食べて、「あ、スイカだわ。」と思うレベルはいいんです、美味しいのをいただきたい、筆者です
さて、今回はほっとくと無法地帯になってしまう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()
で送信元メールアドレスが取得できそうですが、実はそうではないんです
getFrom()
で取得できるのは以下のような文字列で、この文字列からメールアドレス部分を抜き出す必要があります。
そのため上記スクリプトでは、正規表現でメールアドレス部分を抜き出しています。
実行結果
Google <no-reply@accounts.google.com>
おわりに
意外とサクッとできました。
次はフィルタを設定するのですが、手動でやるのは管理が大変なので、GASでやっていこうと思います
GmailAppでは用意されてないので、APIを使用することになると思います
乞うご期待