GAS

【簡単】GmailのメールをLINEに転送する方法【GAS】

【簡単】GmailのメールをLINEに転送する方法【GAS】
Gmailに届く重要なメールを見逃してしまう。。LINEなら必ず見るから転送したいんだけど、やり方が分からない。。

この記事ではこういった疑問にお答えします。

少しでも疑問を解決する手助けとなれば幸いです。

【簡単】GmailのメールをLINEに転送する方法【GAS】

以下の3ステップで、Gmailに届いたメールをLINEに転送することができます。

  1. LINE Notifyでアクセストークンを発行
  2. Google Apps Script(GAS)の設定
  3. トリガーの設定

 

それぞれ解説していきます。

 

1. LINE Notifyでアクセストークンを発行

まずは、LINE Notifyでアクセストークンを発行します。

以下の画面からログインしてください。

LINE Notifyにログイン

 

ログインしたら、マイページに移動します。

LINE Notifyのマイページに移動

 

そして、アクセストークンを発行します。

LINE Notifyでアクセストークンを発行する

自分だけに送りたい場合は、1:1でLINE Notifyから通知を受け取るを選択しましょう。

LINE Notifyのアクセストークンの条件を設定

 

発行したトークンは後ほど使うので、忘れずに保管しておきましょう。

 

2. Google Apps Script(GAS)の設定

次に、Google Apps Script(GAS)の設定をします。

 

Google Apps Script(GAS)とは、Googleが開発・提供しているプログラミング言語です。

GASを使うことで、Google カレンダーやGmailなどのGoogleのサービスと、LINEなどの他のサービスを連携させることができます。

 

今回は、このGASを使って、GmailとLINEを連携させます。

 

まずは、GASのページにアクセスして、Start Scriptingをクリックします。

※LINEに転送したいGmailのアカウントでログインしてください

GASのページにアクセスして、Start Scriptingをクリック

 

そして、「新しいプロジェクト」をクリックしてください。

「新しいプロジェクト」をクリック

 

次に、以下のコードを貼り付けます。

function checkEmailAndNotifyLine() {
  // 監視するメールの送信元アドレスを指定
  const targetEmailAddress = 'hoge@piyo.com';

  // 1時間前のエポック時間を計算
  const elapsedHours = 1;
  const elapsedHoursEpoch = Math.floor((Date.now() / 1000) - elapsedHours * 60 * 60);

  // 検索クエリを作成
  const query = `from:${targetEmailAddress} after:${elapsedHoursEpoch}`;
  
  // Gmailの受信トレイからメールを検索
  const threads = GmailApp.search(query);
  
  // メールをチェックして通知
  threads.forEach(thread => {
    thread.getMessages().forEach(message => {
      const sender = message.getFrom();
      if (sender.includes(targetEmailAddress)) {
        const messageBody = message.getPlainBody();
        sendLineNotification(`メールを受信しました!\n\nメールの内容:\n\n${messageBody}`);
      }
    });
  });
}

function sendLineNotification(message) {
  // トークンを設定
  const lineNotifyToken = 'LINE_NOTIFY_TOKEN';
  const url = 'https://notify-api.line.me/api/notify';
  const headers = { 'Authorization': 'Bearer ' + lineNotifyToken };
  const options = { 'method': 'post', 'headers': headers, 'payload': { 'message': message } };
  UrlFetchApp.fetch(url, options);
}

 

targetEmailAddressには監視したい送信元のメールアドレスを、lineNotifyTokenには先ほど発行したトークンを設定してください。

また、elapsedHoursの値も、ここでは1を設定していますが、任意の値を指定してください。

 

以下、コードの説明です。

  1. checkEmailAndNotifyLine 関数
    • 指定したメールアドレス(targetEmailAddress)からの新しいメールを検索するための関数。
    • elapsedHours という変数で、過去何時間分のメールを検索するかを指定しています。この例では1時間前までのメールを検索対象としています。
    • elapsedHoursEpoch 変数を使用して、現在のエポック時間から指定した時間を引いた時間を計算し、過去の時間を表すエポック時間を生成します。
    • query 変数で、Gmailの検索クエリを作成します。これには、指定された送信元メールアドレスと過去の時間制限が含まれます。
  2. Gmailの受信トレイからメールを検索
    • GmailApp.search(query) を使用して、指定された検索クエリに一致するメールスレッドを検索します。
    • 検索結果は threads 変数に格納されます。
  3. メールをチェックして通知
    • threads をループ処理し、各スレッドのメッセージを取得します。
    • メッセージの送信元を取得し、指定したメールアドレスと一致するかどうかを確認します。
    • 一致する場合、メッセージの本文を取得し、sendLineNotification 関数を呼び出してLINE通知を送信します。
  4. sendLineNotification 関数
    • LINEに通知を送信するための関数。
    • lineNotifyToken 変数にLINE Notifyのトークンを設定します。
    • LINE Notify APIを呼び出すためのURLとヘッダーを設定し、message パラメータに通知メッセージを設定します。
    • UrlFetchApp.fetch を使用して、設定されたURLとオプションを使用して通知を送信します。

 

ここまでできたら、プロジェクト名を任意の値に書き換えた上で、保存します。

GASでプロジェクト名を任意の値に書き換えた上で保存

 

checkEmailAndNotifyLineを選択した上で「実行」をクリックします。

GASで作成した関数を実行

 

権限を確認します。

GASで権限を確認

 

詳細をクリックします。

GASで詳細をクリック

 

ページ移動して、許可します。

GASでページ移動して許可

 

これで、LINEにGmailに届いたメールが転送されていれば、とりあえずGASのコードの設定は完了です。

 

3. トリガーの設定

ここまでで、手動で条件に指定したメールを転送することはできるようになりました。

 

次に、このメールの転送を自動で行うための設定をします。

まずは、左のメニューからトリガーを選択してください。

GASでトリガーを選択

 

右下の「トリガーを追加」をクリックします。

GASでトリガーを追

 

以下の条件で作成してください。時間の間隔は任意の値を設定してください。

GASでトリガーの条件を設定

 

以上で設定完了です。

あとは1時間ごとにGASの関数を実行して、条件と一致するメールがあればLINEに通知してくれるでしょう。

 

【簡単】GmailのメールをLINEに転送する方法【GAS】おわりに

今回は、GASを使ってGmailのメールをLINEに転送する方法を解説しました。

以下の3ステップを踏むことで、特定のメールを簡単にLINEに転送することができます。

  1. LINE Notifyでアクセストークンを発行
  2. Google Apps Script(GAS)の設定
  3. トリガーの設定

 

今回は以上となります。

最後まで読んでいただきありがとうございました。

 

この記事が、GmailのメールをLINEに転送する上で少しでも参考になっていれば幸いです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA