GASで、お気に入りのメルマガを1つのシートにまとめる方法

お気に入りのメルマガを、1つのファイルにまとめると、便利です。
GAS(Google Apps Script)、Google のプログラミングでやる方法をまとめてみました。

P1011249

※自宅にて by Panasonic GH5

メルマガのメリット・デメリット

メルマガは自分のメールソフトに情報が届くので便利ではあるのですが、ふとそのメルマガを読み返したいときに不便な場合もあります。

もちろんメールソフトで検索すれば見つかるのですが、メルマガだけを別で管理しておくと便利です。

Gmail でメールを受信していて(独自ドメインのメールアドレスを Gmail で受信している場合も含む)、GAS (Google のプログラミング)を使うと 、Gmail からスプレッドシート (Google のExcel)へメルマガをまとめることができます。

読者としても便利ですし、自分がメルマガを出していれば自分のメルマガをまとめるときにも便利です。
私は両方で使っています。

 

GASでメルマガをスプレッドシートにまとめる方法。

GASを使うには、まず、新規のGoogleスプレッドシートを立ち上げましょう。
https://www.google.com/intl/ja_jp/sheets/about/

スプレッドシートの[ツール]→[スクリプトエディタ】から

プログラムを書くソフトを立ち上げることができます。

次のプログラムを入れて実行すれば、

(設定の部分■は、それぞれ入れていただければ)

function mail_magagine() {

//★検索条件設定
 var title = '■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'; //タイトル
 var count = ■■; //抽出する数

//1 スプレッドシートを読み込む
 var sp =SpreadsheetApp.getActiveSheet();

//2 スプレッドシートをクリア
 sp.clear();

//3 Gmailからメールを検索

 var search = GmailApp.search('subject:'+title,0,count);
 var mail_message = GmailApp.getMessagesForThreads(search);

//4 検索したメールから本文を抽出
 for(var i= mail_message.length-1,r=1;i>0;i--,r++){

  var mail_text = mail_message[i][0].getPlainBody();

  sp.getRange('a'+r).setValue(mail_text);          //本文
 };

};

Google スプレッドシートに、メルマガが集まるのです。

 

 

なお、最初に実行するときには、スクリプトエディタで、保存(Ctrl+ S) して、

実行(Ctrl+R)すると、次のような警告が出るので、[許可を確認]をクリック、

Google アカウントを選択し、次の画面では[詳細]をクリックして、

[(安全ではないページ)に移動]をクリックし、

最後に[許可]をクリックしましょう。

 

安全ではないページと出るとびっくりしますが、これをやらないとプログラムを実行できませんので、いたしかたありません。

 

設定すべきところは、メルマガの検索条件と検索数。
それぞれ、titleとcountという部分で、設定します。

image

 

まず、今使っているスプレッドシートを読み込み。

image

いったんクリアします。
(前のデータが残っているといけないので)

image

Gmail からメールを件名で検索する場合には、GmailAppで、subject:で指定しましょう。
ここで、最初に設定したtitleを使うわけです。

image
カンマを入れて、次の0は、「メールの1つ目から検索する」という意味です。
プログラミングでは、0、1、2、3と数えるので、0が「1つ目」になります。

カンマを入れてその次は、先ほど設定したcount、抽出する数を設定する部分です。
これを100とか、200にすれば、それだけのメルマガを抽出することができますが、プログラムの実行の時間もかかりますので、少しずつやってみましょう。

なお、メルマガ発行者の場合は、自分のメールへメルマガを送っておくと抽出でできるわけです。
ただ、メルマガにそのまま返信があった場合には、そのメールを抽出してしまいます。
次のようにfromに自分の発行アドレス、toに自分のメールアドレスを入れておくと確実です。

var search_mail = GmailApp.search('subject:【税理士進化論】 from:info@xxxx.com to:xxxx@gmail.com',0,1);

 

次の部分では検索結果をもとに Gmail からメッセージを取ってきます。

image

その取ってきたメッセージの本文を読み取り、

image

スプレッドシートの A列に貼り付けていきます。

image

これを繰り返しやるプログラムが、forの部分です。
image

mail_message.length-1、つまり、10-1の9(10番目を意味する)から、8、7、6……と、0(最新)まで繰り返すという意味です。
0から9まで繰り返すという設定もできますが、そうしてしまうと新しいメルマガから順にスプレッドシートに並んでしまいます。
日付の古いものから並んだ方が見やすいと思いますので、このように設定しました。

このプログラムを書けば、titleやcountを変えれば、さまざまなメルマガをまとめることができます。

たとえばこのように設定をしてみました。
私が毎日とっているメルマガです。
気になる方は、タイトルでググって(検索して)いただければ。

image

image

 

image

image

 

image

image

 

image

image

 

GASでメルマガ本文だけをスプレッドシートにまとめる方法。

メルマガには本文の他の部分もあります。
もしメルマガだけを抽出したいのであれば、プログラムに工夫が必要です。

たとえば■で区切られている場合は、 split 関数で■を指定して区切ります。
私のメルマガの場合は、■で区切ると4つの区分になり、3つ目が本文になりますので、split(“■")[2]と書けば、本文だけが抽出できるのです。

image

この場合も0、1、2、3、4と数えますので、3つ目は、[2]という指定になります。
姿勢になります。

メルマガを出している方は、これを踏まえて区切り位置を意識しておくと、便利です。
途中でパターンを変えていると、うまく読み取れない場合もあります。
(私も変えたことがあるので、一律のパターンでは読み取れませんでした)。

以前は Word にメルマガを書いて、それを配信サービス(オートビズ)に貼り付けて配信していました。
メルマガ配信、セミナー運営に便利! Webサービス「オートビズ」 | EX-IT

1つのWordファイルにメルマガを書いて蓄積していくと後で見返すとき、使うときにも便利です。
(ただ、Wordが重くなるので、500号ずつわけていたこともあります)

今は、メルマガ配信システムで配信した後、定期的にプログラミングで1つにまとめるようにしています。

メルマガを読む側の方も、書く側の方も使ってみていただければ。

この記事のプログラムに関連するものです。

メルカリの購入履歴をExcelへ。GASでGmailからデータを抽出して経理。 | EX-IT



■編集後記

昨日は、ご依頼のあった原稿執筆。
構想を練りつつ、昨日、書きあげました。
1万字ほどで、4回にわたってネットで連載される予定です。
音声認識入力し、その後、VS Codeで仕上げています。

 

■昨日の1日1新
※詳細は→「1日1新」

RG ズゴック完成
雪見だいふく パンケーキ

 

■昨日の娘日記

Amazonプライムビデオのしまじろうシリーズにはまり、Amazonの端末Echo Showでみています。
見すぎないように、声でスリープタイマー(30分)ができるのが便利です。
私がタイマーをしているというのは、ばれてないようで。