Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

gmail でのメルマガのフィルタリングメモ

More than 1 year has passed since last update.
  • 久しぶりに開く gmail アカウントにメルマガがいっぱい溜まっていて、何がなんだかわからなくなっている!!
  • ただ、読みたいメルマガもあるし、いらないメルマガだけはじきたい!!
  • 「メール選択」=>「メールの自動振り分け設定」を毎回やってると、フィルタがいっぱいできてわけわからんくなる!!

てことがありまして、そのときにやったことですメモです。

これが一番いい方法ではないと思いますが、次回やるときに絶対忘れてると思ったので、手順の自分用メモです。

スプレッドシートにメルマガの From 部分を全部リスト化

Screen_Shot_2018-07-06_at_3_01_11.png

GAS でシートからフィルタリング条件の文字列を生成

ここから。

Screen_Shot_2018-07-06_at_3_04_14.png

GAS をこんなふうに書いて。

function onOpen()
{
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu('フィルタ生成'); 
  menu.addItem('フィルタ生成', 'generateFilter'); 
  menu.addToUi();
}

function generateFilter() 
{
  var sheet = SpreadsheetApp.getActiveSheet();

  // A列のデータをぜんぶ取得する
  var rowStartIndex = 1;
  var colStartIndex = 1;
  var colNum = 1;
  var melmagas = sheet.getRange(rowStartIndex, colStartIndex, sheet.getLastRow(), colNum).getValues();

  // filtering するための条件文字列を list へ 
  var MAX_FILETER = 1300 // だいたいこれ以上長い条件文字列を gmail 側がうけつけてくれなかった
  var filters = []
  idx = 0 
  filters[idx] = ""
  for(var key in melmagas)
  {
    str = ( (melmagas.length - 1 == key) || (MAX_FILETER <= filters[idx].length) ) ? melmagas[key][0] : melmagas[key][0] + " OR " ;
    filters[idx] += str

    if( (MAX_FILETER <= filters[idx].length) )
    {
      idx += 1
      filters[idx] = ""
    }
  }


  // シートへ書き込み
  for(var key in filters)
  {
    sheet.getRange( parseInt(key)+1, 3).setValue( filters[key] );  
  }
}

このボタンを押すと、C列にフィルタ文字列ができてる。

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f33303430372f33303834323339652d363266622d376638642d653336662d3939343463626463623739622e706e67-3.png

gmail のフィルタ設定へ突っ込む

gmail -> 設定 -> フィルタとブロック中のアドレス と進んで。

上記スプレッドシートで生成されたフィルタ文字列をFromのところへ突っ込んで「続行」。

Screen_Shot_2018-07-06_at_3_07_24.png

次のページで、「一致するスレッドにも~」のところにチェックを入れるのを忘れずに、「フィルタを更新」を押す。

Screen_Shot_2018-07-06_at_3_09_25.png

これでOKなきがする。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away