どうも、めどんです。
最近、メルマガの展開を勉強するべく、
尊敬するとある経営者のメルマガを分析
しようと決めました。
メールを一通一通、
読み返し、スプレッドシート(エクセルみたいなやつ)
にまとめることを思いつきました。
しかーし、
膨大な量のメールを一通一通、
スプレッドシートにコピペするのは
時間がかかります。
絶対、モチベーション続きません。。
そこで、どうにか
メールをスプレッドシートに
一括で貼り付けられないか?
といろいろ調べた結果、
いい方法にたどり着いたので、
シェアしますね。
Google Apps scriptで一括取り込み。
①スプレッドシートを開く
②ツールから「スクリプトエディタ」を開く
③スクリプトをコピペ
④スクリプトを実行
スクリプトは下記からコピーしてね。(埋め込み方がわからん笑)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
function searchContactMail() {
/* Gmailから特定条件のスレッドを検索しメールを取り出す */
var strTerms = ‘label:ラベル名’; //メール検索条件
var numMailMax = 218; //取得するメール総数
var numMail = 218; //1度に取得するメール数
var myThreads; //条件にマッチしたスレッドを取得、最大500通と決まっている
var myMsgs; //スレッドからメールを取得する →二次元配列で格納
var valMsgs;
var i = SpreadsheetApp.getActiveSheet().getLastRow();
if(i<numMailMax) {
valMsgs = [];
myThreads = GmailApp.search(strTerms, i, numMail); //条件にマッチしたスレッドを取得、最大500通と決まっている
myMsgs = GmailApp.getMessagesForThreads(myThreads); //スレッドからメールを取得する →二次元配列で格納
/* 各メールから日時、送信元、件名、内容を取り出す*/
for(var j = 0;j < myMsgs.length;j++){
valMsgs[j] = [];
valMsgs[j][0] = myMsgs[j][0].getFrom();
valMsgs[j][1] = myMsgs[j][0].getReplyTo();
valMsgs[j][2] = myMsgs[j][0].getTo();
valMsgs[j][3] = myMsgs[j][0].getDate();
valMsgs[j][4] = myMsgs[j][0].getSubject();
}
/* スプレッドシートに出力 */
if(myMsgs.length>0){
SpreadsheetApp.getActiveSheet().getRange(i + 1, 1, j, 5).setValues(valMsgs); //シートに貼り付け
}
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
変更した部分は、ラベル名、
取得するメール総数、一度に取得するメール数。
メール本文は必要なかったので削除しました。
これで、メール一覧をスプレッドシートに
一括で貼り付けることに成功!
あとは、メールを分析して、
気づいたことなどを追記していく形です。
今回、この方法を調べるのに結構時間かかって
しまいましたが、一度、覚えてしまえば後々、
すごい楽できます。
こういう事には時間をかけてもいいんじゃないかな?
ってのが、僕の考え。
是非試してみてはいかがでしょうか?
参考にした記事はこちら