GAS(Google App Script)でGmailの必要部分だけを抽出する方法。

GAS入門

Gmailから必要な情報だけを集めることができます。
GAS(Google App Script)を使って、メルマガの内容を書き出してみました。

 

GAS(Google App Script)とは?

 

GAS(Google App Script)というのは、Googleサービスで利用するプログラミング言語です。Google App Scriptの頭文字だけをとってGAS(ガス)というのが通称です。

 

GmailやGoogleカレンダー、GoogleドライブといったGoogleのサービスについて、GASを使うことで自動化させることができます。

 

GAS(Google App Script)を使うには、Googleドライブの新規から起動するか、
GOforIT

GoogleスプレッドシートやGoogleドキュメントの拡張機能から起動することができます。

GOforIT

 

Gmailからメルマガの本文だけを書き出すには?

 

まずはGASを起動してみましょう。

GOforIT

 

メルマガの本文だけを書き出すために書いたプログラムです。Gmailから抽出したメルマガの内容をログで書き出します。

 

 

 

これを実行すると、

GOforIT 17

 

 

実行ログとしてメルマガの内容が表示されます。

GOforIT

 

 

指定した件数分を書き出すことができました。

GOforIT

 

 

このログをコピーして
GOforIT

 

 

 

Googleドキュメントなどにコピペすると、2つ目以降の「14:14:26 情報」という文字もコピーされます。

GOforIT 11

 

 

この情報を消したければ、この文字列を空白に置き換えれば、メルマガの本文だけを拾えます。

GOforIT 13

 

GASを最初に実行するときの注意点

GASを最初に実行するときには、このような承認画面が表示され、

GOforIT 9

アカウントを選ぶと、
GOforIT

怪しい画面になりますが、そのまま詳細をクリックします。
GOforIT

そのまま、許可をすれば大丈夫です。

GOforIT

 

メルマガの型を分析することが攻略の一歩

 

では、今回のプログラムの解説をしてみます。

 

メルマガを抽出する

 

まずはメルマガだけをGmailから検索する必要があります。 タイトルを探すわけです。

GOforIT

 

タイトルを探すには、Gmailの検索窓の右にある検索の詳細をクリックし、

GOforIT

件名に探したいタイトルをコピペしましょう。

GOforIT

すると、subject:(GO方見聞録) と表示されます。これをGASの変数として定義します。

GOforIT 18

 

次に「start」と「max」ですが、これはデータの始めと終わりです。

 

Gmailの検索だとGASのルールがあります。他にもいろいろあります。

GOforIT

 

「start」を1でなく0としているのは、プログラミングならではです。

実は、プログラミングでデータを数えるときは「1」からではなく「0」から始まります。
なので、0から10としています。10は何個抽出したいかで変更します。

 

 

次にGmailを動かします。

GOforIT

ここで検索をしています。

 

で、さっき定義した「tytle,start,max」をもとにGmailから検索しています。
タイトルで検索し、1つ目から指定した数だけを選び、

 

その探したスレッドからメッセージを探します。

 

 

で、探したスレッドから本文の必要なところだけを抽出します。

GOforIT 19

 

 

まず、下記にある必要な部分だけ抽出して、ログを書き出すという処理を解説します。

 

 

本文のうち必要な部分だけを「sprit」を使って分割しています。

メルマガの書き出し部分は必要ありません。今回欲しいのは本文だけ。

GOforIT

 

メルマガ本文の手前にある情報は必要ありません。そこで分割したい区切りになる「mailconsulting」という文字をキーにしてデータを分割します。

GOforIT 20

「body.split(‘mailconsulting’)[1]」というように。

 

2つに分けたメルマガ本文のデータのうち、後ろ部分だけが必要なので、[0][1]と2つに分けたデータのうち、[1]を選んでいるわけです。

 

これで抽出したい最初の部分は決まりました。

 

次は末尾の部分です。

同じように、最後の手前で「それでは。」をキーにして分割。今度は分けた最初のデータだけがほしいので、2つのデータ[0][1]のうちの[0]を選びます。

GOforIT 21

今度は「それでは。」をキーに分割します。

で、「body.split(‘mailconsulting’)[1].split(‘それでは。’) [0]」と続けることによって、抽出したい最初と最後を決めています。

これでメルマガの本文だけを抽出できました。

 

 

数日分のデータをとる

 

これだけだと1日分しかメルマガのデータをとることができません。

 

そこで「for(i=max-1;i>start;i–){…}」で今の処理を繰り返しています。

 

繰り返し処理は本来、「for(i=start;i<max;i++)」とします。

 

「i=start」の「i」は変数、「start」は0、「i<max」で「10」まで。
繰り返しを「i++」とすることで「0、1,2,3…10」と変わっていきます。

ところが0から始めると、上に表示されている直近のメルマガからデータをとってしまいます。

 

そこで逆からデータを処理するようにして、それを「for(i=max-1;i>start;i–)」と書いています。

 

iは「10−1=9(10番目)」からスタートし、「8、7、6…0」とカウントしています。
これで、古い日付から順にデータをとることが可能です。

 

Gmailからデータを抽出するときには、そのメールの型を見つけることが大事です。
メルマガのデータ、スタンドからも取れるのですが、本文だけがとれるこの方法を試してみました。

参考にしていただければ。

 

 


【編集後記】
昨日はオフ。雨でしたが気分転換でカフェに。メルマガやブログを書いてから図書館に。夜は読み聞かせでしたが、先に寝てしまったみたいです。

【昨日の1日1新】
※「1日1新」→詳細はコチラ
GASでメルマガのデータ抽出