読者です 読者をやめる 読者になる 読者になる

【Google Apps Script】 Gmail を一括転送するスクリプト(ラベルでもなんでも)

一括で転送する機能がGmailに無かったので、
実装しました。

スプレッドシートの C2に メールの検索条件
          C3に 送り先
を指定すると動きます。

1. メールを検索して取得
2. それを一つ一つ送信
という手順なので、
特定の単語でも絞れますし、色々融通がききます。

(追記 17/2/11)
一ぺんに 250通までしか送れないみたい。
また、1日に使える回数にも制限がある。
1500通くらい??

function gmailfw(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var start = 0;
  var max = 500;
  var search =  sheet.getRange("C2").getValue()
  var fw_addr = sheet.getRange("C3").getValue()

  var threads = GmailApp.search(search, start, max);
  
  for (var i in threads) {
    var thread = threads[i];
    var msgs = thread.getMessages();
    
    for(var m in msgs){
      var msg = msgs[m];
      var from = msg.getFrom();
      var subject = msg.getSubject();
      var body = msg.getPlainBody().replace(/\r/g, "").replace(/\n\n/g, "\n").replace(/\n\n/g, "\n");
      var body = "From:" + from + "\n" + "Subj:" + subject + "\n\n" + body;
      
      GmailApp.sendEmail(fw_addr, subject, body);
    }
    Utilities.sleep(1000);
  }
}