見出し画像

大量のメールの情報をスプレッドシートに自動コピーする

こちらの記事は以下の動画の解説記事になります。

@kata_techtok

作業効率を50倍にした結果、上司から言われた言葉はコメント欄に書きました💦 #効率化 #プログラミング #コピペ #gas

♬ グッバイ宣言 - Chinozo

◆目標

今回はGoogleAppsScript(GAS)を使って、Gmailに溜まった問い合わせフォーム経由のメールの情報をスプレッドシートに転記します。

◆前提

通常問い合わせフォームからのメールは定型文があると思うので、今回は以下のような文章形式のメールが何件も溜まっている前提で進めます。

問い合わせフォームより問い合わせがありました。
─────────────────────────
問い合わせ詳細
─────────────────────────
メールアドレス:kyasa745@fanclub.pm
組織・貴社名:A社
ご相談内容:製品の話を詳しく聞きたいです。

このメールは株式会社帝愛グループの問い合わせフォームから送信されました

後ほどコード解説の部分にも記載しますが、『このメールは株式会社帝愛グループの問い合わせフォームから送信されました』という文字列を頼りに、問い合わせフォーム経由のメールを特定します。
問い合わせフォーム経由の自動メール通知なので、このように何かしら決まった文言が含まれているかと思います。

◆準備

まず以下のような形式のスプレッドシートを用意します。
このシートに後ほどGASを使ってメールの内容を自動で転記します。
※シートの作成が面倒な場合は↓を自身のGoogleドライブにコピーすればスムーズかと思います。

◆メール検索 & スプレッドシートに転記するプログラム作成

先程準備したスプレッドシートから『ツール > スクリプトエディタ』でスクリプトエディタを開きます。
以下が今回の動画で使用したコードになります。

const searchContact = () => {
 const query = '"このメールは株式会社帝愛グループの問い合わせフォームから送信されました"'
 const start = 0
 const max = 30

 const threads = GmailApp.search(query, start, max)
 const messages = GmailApp.getMessagesForThreads(threads)

 const values = []
 for (let i = 0; i < messages.length; i++) {
   for (let j = 0; j < messages[i].length; j++) {
     const body = messages[i][j].getPlainBody()
     const item = [
       messages[i][j].getDate(),
       body.match(/メールアドレス:(.*)/)[1],
       body.match(/組織・貴社名:(.*)/)[1],
       body.match(/ご相談内容:(.*)/)[1]
     ]
     values.push(item)
   }
 }

 if (values.length > 0) {
   SpreadsheetApp.getActiveSheet()
                 .getRange(2, 1, values.length, values[0].length)
                 .setValues(values)
 }
}

簡単にコードの解説をすると、

①『"このメールは株式会社帝愛グループの問い合わせフォームから送信されました"』という問い合わせメールに含まれる定型文を頼りにメールを抽出
②以下のコードでメールの文章の中からメールアドレス、組織名、相談内容等を特定しています。

body.match(/メールアドレス:(.*)/)[1]

③最後に以下のコードで準備の項で作成したスプレッドシートにメールの文章を転記しています。

SpreadsheetApp.getActiveSheet()
              .getRange(2, 1, values.length, values[0].length)
              .setValues(values)

最後にスクリプトエディタから『実行』を押せば完了です!

◆おわりに

他にも『サクッと使えそうな』自動化情報などをエンタメっぽく
TikTokで配信してますので、よければ応援お願いします!!

TikTokアカウント ➔ https://vt.tiktok.com/ZSJnM2NCX/



この記事が気に入ったらサポートをしてみませんか?