WEB制作GASの凄さの紹介

GASの凄さの紹介

相互リンクしませんか?というメール

御社も受け取ったことがあるのではないでしょうか。
みなさんはどうしますか?

無視しますよね。
でもそのようなメールが2年ほど経ってたまっていって、
「これまで相互リンク依頼がきたサイト全部と相互リンクしたら結構被リンク獲得できるんじゃない?」
って思ったりもしますよね

でも過去に遡ってメール探すのめちゃめちゃしんどい

ですよね。

そこでGASです。
相互リンクという文字がありつつ、
除外ワード(資本提携や引用返信文があるものや英語のもの)を除いて
本当に相互リンクを望んでいる人のみを抽出するGASスクリプト

function extractEmails() {
  // スプレッドシートを開く
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // メールの検索クエリ
  var query = '相互リンク';
  
  // メールスレッドを検索
  var threads = GmailApp.search(query);
  
  // スプレッドシートの書き込み開始行
  var startRow = 2;
  
  // 各スレッドを処理
  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    
    // 各メッセージを処理
    for (var j = 0; j < messages.length; j++) {
      var message = messages[j];
      var body = message.getPlainBody();
      
      // メール本文のフィルタリング
      if (!body.includes('相互リンク') || !containsHiragana(body) || body.includes('資本') || body.includes('Original Message') || body.includes('M&A') || body.includes('We') || countOccurrences(body, '>') >= 8) {
        continue;
      }
      
      // メール本文から情報を抽出
      var companyName = extractInfo(body, '企業名 : ');
      var email = extractInfo(body, 'メールアドレス : ');
      
      // スプレッドシートに書き込み
      sheet.getRange(startRow, 1).setValue(companyName); // 会社名
      sheet.getRange(startRow, 2).setValue(email); // 相手のメールアドレス
      sheet.getRange(startRow, 3).setValue(body); // メール本文全体
      
      // 次の行へ
      startRow++;
    }
  }
}

function extractInfo(body, label) {
  var regex = new RegExp(label + '\\s*([^\\n]+)');
  var match = body.match(regex);
  return match ? match[1].trim() : '不明';
}

function containsHiragana(text) {
  return /[\u3040-\u309F]/.test(text);
}

function countOccurrences(text, char) {
  return (text.split(char).length - 1);
}

こちらです。

この結果,,,

一撃です。

ご自由にお使いください。