【Google Apps Script活用法】受信メールをNotionに自動転記する方法
はじめに
こちらの記事を読んでくださった方から、こんな質問が届きました。
といった内容でした。
この記事では、それに対する解決策を提供しています。
私の以前こちらで書いたコードは1日に1回受信するメールマガジンをnoteに出力することを想定していたため、連続して受信するメールを漏れなく、かつ重複せずに管理するための機能は考慮していませんでした。
この問題に対処するため、以下のような改善を行いました。
改善点の概要
・10分ごとのチェックと出力:
10分ごとなど定期的にスクリプトを実行し、その間に受信した全てのメールをスプレッドシートに出力します。メールが1件も受信されなかった場合は、出力を行いません。
・重複の防止:
以前に出力したメールが再度出力されないように、処理済みメールの追跡機能を導入します。スプレッドシートに新しい列を追加し、各メールのメールIDを記録することでこれを実現します。
・ソート機能:
スプレッドシートにデータを追加する前に、受信日時でデータをソートする機能を組み込みました。
・Notionへの重複出力防止:
既にNotionに出力したデータを再度出力しないようにするため、スプレッドシートにNotionへ送信済みのデータをマークする列を追加しました。これにより、既に送信されたデータをスキップするようにできます。
出力される情報について
スプレッドシートへの出力情報
スプレッドシートに以下の情報を出力する機能を実装しました:
・メールタイトル
・本文
・受信日
・メールID(重複を避けるため)
・送信者メールアドレス
・送信先メールアドレス
・Notionに送信済み(送信済みかどうかの確認用)
Notionへの出力内容
Notionへの出力では、
プロパティとして、
・メールタイトル (プロパティの種類:タイトル)
・受信日 (プロパティの種類:日付)
・送信者メールアドレス(プロパティの種類:テキスト)
・送信先メールアドレス(プロパティの種類:テキスト)
そして、本文はプロパティではなく、ブロックに出力されます。
長い文章も読みやすく表示するためです。
取得したいメールの指定方法
検索の具体例
出力したいメールを指定する方法として、以下の例を挙げます:
・自分(sample@sample.com)が test@sample.com というアドレスに送ったメールを出力したければ、
const query = "to:test@sample.com OR from:sample@sample.com";
・特定のアドレスから送信され、かつタイトルに特定の単語(例えば、「報告」)を含むメールを検索したければ、
const query = "from:example@example.com subject:報告";
・星付きのメールを出力したければ、
const query = "is:starred";
参考になるサイト
この検索の仕方に関する詳細は、以下のリンクなどが参考になるかと思います。: 【GAS】http://GmailApp.searchでメールを検索・取得する
たくさんの検索条件がある場合は、GASで指定してもいいけれど、ラベルをつけて、それを取得するほうが簡単かもしれないですね!
const query = "label:ラベル名";
実行制限への対処
また、メールの処理量があまりにも多いと、Google Apps Scriptの実行制限に達してしまう可能性も考えられます。例えば1分間隔での処理では、使用可能な無料枠を簡単に超えてしまう可能性があります。 実行制限に達した場合の対処法については、以前にも詳しく記載したことがあります。
こちらを読んでいただき、どのように対応するかのイメージを掴んでいただければと思います。
全スクリプトの公開
この自動化技術を活用することで、日々のメール管理が大幅に楽になり、作業効率が向上します。Notionを使ったタスク管理をさらに発展させたい方や、受信メールの自動整理に関心がある方にとって、この記事が有益なリソースとなることを願っています。
ご質問やさらなる改良に関するお問い合わせは、いつでもお気軽にどうぞ。この記事を通じて提供した情報や技術に関して不明点がある場合、または特定のニーズに合わせたカスタマイズが必要な場合、可能な範囲でサポートいたします。新しいアイデアや提案も大歓迎ですので、より効率的なメール管理やタスク自動化の方法に関してご意見があれば、共有してください。共に、より便利で快適なワークフローを構築していきましょう!
それでは以下にすべてのスクリプトを公開いたします。
ここから先は
¥ 500
この記事が気に入ったらサポートをしてみませんか?