GASでGmailの本文を、プレーンテキストで取る

GAS

GASでGmailの本文を取得して解析したいとき、そのまま読み込むとHTMLメールのタグが大量に混ざってしまい、必要な情報が見つけにくくなることがあります。プレーンテキストを指定して取得することで、純粋なテキストデータとして扱えるようになります。

プレーンテキストで読み込むコード

const threads = GmailApp.search("label:inbox", 0, 1);
const message = threads[0].getMessages()[0];
const body = message.getPlainBody();
Logger.log(body);

getPlainBody() を使うことで、HTMLタグが除外された状態のテキストが body に格納されます。

スレッドとメッセージの違いによる階層構造

GmailをGASで扱う際、1つのThreadオブジェクトの中に複数のMessageオブジェクトが存在するという階層構造になっています。そのため、検索結果から本文を直接引き出すことはできず、スレッドを取得したあとに getMessages() で特定のメッセージ(メール1通)を取り出してから、本文にアクセスする必要があります。

取得したテキストからデータを抜き出す

タグのない純粋な文字列として取得できれば、テキストの解析が容易になります。正規表現(RegExp)を用いて、特定のパターンに一致する注文番号や問い合わせ内容などを本文から正確に抜き出す用途によく使われます。

タイトルとURLをコピーしました