Google Apps Script(GAS)が便利!特定のアドレスから届くGmailをLINEに通知する方法

目次

特定のアドレスから届くGmailをLINEに通知する方法

この記事では、特定のアドレスから届いたGmailを自動的にLINEに通知する方法を、IT初心者でも分かりやすく解説します。これにより、大事なメールを見逃すことなく、すぐにLINEで受け取ることができるようになります。

1. Google Apps Scriptとは?

まず、Google Apps Script(GAS)について簡単に説明します。GASは、Googleが提供しているクラウドベースのプログラミング環境で、GmailやGoogle DriveなどのGoogleサービスを自動化することができます。今回は、このGASを使って、Gmailに届いた特定のメールをLINEに通知する方法を紹介します。

2. 事前準備

a. LINE Notifyの設定

STEP
LINE Notifyの登録

LINE Notifyのウェブサイトにアクセスし、LINEアカウントでログインします。

STEP
トークンの発行

LINE Notifyの「マイページ」にアクセスし、「トークンを発行する」をクリックします。

トークンの名前を入力し、通知を送りたいグループまたは個人チャットを選択して「発行」をクリックします。

発行されたトークンをコピーして、後で使えるようにしておきます。

STEP
botを通知したいグループに招待

LINE Notifyというbotから通知が来ていると思うので、このアカウントを通知させたいグループに招待します。

b. Google Apps Scriptの準備

STEP
Googleアカウントにログイン

Gmailを使うGoogleアカウントにログインします。

STEP
スクリプトエディタを開く

Gmailの画面の上部にある「Google Apps」メニューから「Google Apps Script」を選択します。

もしくは、Google Apps Scriptのウェブサイトに直接アクセスしても構いません。

3. スクリプトを書く

次に、GmailをLINEに通知するためのスクリプトを書いていきます。以下の手順に従ってください。

新しいプロジェクトを作成

「新しいプロジェクト」をクリックし、プロジェクトに分かりやすい名前をつけます(例:「GmailからLINE通知」)。

スクリプトを貼り付ける

以下のスクリプトをエディタに貼り付けます。

var lineToken = "ここに発行されたLINE Notifyのトークンを貼り付けてください"; // LINE Notifyトークン

// LINE通知を送信する関数
function send_line(message) {
  var payload = {'message': message};
  var options = {
    "method": "post",
    "payload": payload,
    "headers": {"Authorization": "Bearer " + lineToken}
  };
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

// メールを取得し、特定の送信元からのメールをフィルタリングする関数
function fetchContactMail() {
  var now = new Date();
  var past = new Date(now.getTime() - get_interval * 60000); // 5分前の時間を計算
  var searchQuery = 'is:unread after:' + Math.floor(past.getTime() / 1000); // UNIXタイムスタンプを使う
  var threads = GmailApp.search(searchQuery);
  var messages = GmailApp.getMessagesForThreads(threads);
  var filteredMessages = [];
  var targetSender = "no-reply@example.com"; // ここに特定の送信元アドレスを指定

  for (var i = 0; i < messages.length; i++) {
    var lastMessage = messages[i].slice(-1)[0];
    var sender = lastMessage.getFrom();
    if (sender.indexOf(targetSender) !== -1) { // 送信元が特定のアドレスかチェック
      var messageBody = "\n【date】: " + lastMessage.getDate() +
                        "\n【From】: " + sender +
                        "\n【Subject】: " + lastMessage.getSubject() +
                        "\n【Body】: \n" + lastMessage.getPlainBody();
      filteredMessages.push(messageBody);
      lastMessage.markRead(); // メッセージを既読にする
    }
  }

  return filteredMessages;
}

// メイン処理
function main() {
  var newMessages = fetchContactMail();
  if (newMessages.length > 0) {
    for (var i = newMessages.length - 1; i >= 0; i--) {
      send_line(newMessages[i]);
    }
  }
}
スクリプトの内容を理解する
  • lineToken: 先ほどLINE Notifyで発行したトークンをここに貼り付けます。
  • send_line(): この関数は、LINEにメッセージを送信するためのものです。
  • fetchContactMail(): この関数は、Gmailから特定の送信元のメールを検索し、フィルタリングします。
  • main(): メイン処理で、新しいメールがあればLINEに通知を送信します。

トリガーの設定

次に、スクリプトが定期的に実行されるようにトリガーを設定します。

  1. トリガーを設定する
  • エディタのメニューから「時計アイコン」をクリックし、「トリガー」を開きます。
  • 「main」関数に対して「時間主導型トリガー」を設定し、例えば5分ごとにスクリプトが実行されるように設定します。

スクリプトのテスト

スクリプトが正しく動作するかを確認するために、スクリプトエディタから「main」関数を手動で実行してみてください。指定した送信元からの未読メールが存在する場合、LINEに通知が送信されるはずです。

完成!

これで、特定のアドレスから届くGmailをLINEに通知する設定が完了しました。これにより、大事なメールを見逃すことなく、リアルタイムで確認できるようになります。


最後に

この記事では、GASを使ってGmailからLINEに通知を送る方法を紹介しました。これを応用することで、さまざまな通知システムを自分で構築することができます。ぜひチャレンジしてみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

WordPress開発歴6年。
ベンチャー企業のオウンドメディア開発、中古車検索サイトの開発、WooCommerceを用いたECサイト開発、会員登録機能付きのサイト開発、求人検索サイトの開発など、多くのWordPressサイトを開発してきました。MVPではじめて運用に合わせて拡張保守していくスタイルのアジャイル開発が可能なので、100万円程度のご予算でも新規事業開発を立ち上げることが可能です。

目次