大量のメールの情報をスプレッドシートに自動コピーする
こちらの記事は以下の動画の解説記事になります。
◆目標
今回は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/
この記事が気に入ったらサポートをしてみませんか?