GmailをLINEに自動転送する方法を解説! | 株式会社ベートーベン

GmailをLINEに自動転送する方法を解説!

「仕事のメールが大量に来るけど、外にいることも多くメールを見落としてしまう」ということはありませんか?
「Gmailに来たメールをLINEに自動転送」できれば、一気に業務を効率化できます。
転送によって業務を効率化させたいと考えている方は、ぜひ参考にしてみてください。

【GmailをLINEに自動転送する方法】

大まかには下記の3ステップです。一見難しそうですが、意外に簡単です。

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

<1>LINE Notifyにてアクセストークンを発行

まずは、メールを転送したいLINEアカウントを開き、「LINE Notify」のトークンを発行します。
※LINE Notify…外部のサービスと通知を連携させるLINEの公式サービス

以下の方法にしたがって、アクセストークンを発行してください。

  1. LINE Notifyの公式サイトへアクセス
  2. LINE Notifyにログイン(ご自身のログイン情報を入力してください)
  3. 「マイページ」を開く
  4. 「アクセストークンの発行」(開発者向け)を開く
  5. 「トークンを発行する」
  6. 「トークン名」と「メールを転送するトークルーム」を決める
  7. トークン名は何でも大丈夫ですが、「Gmail」のようにわかりやすい名前をつけておくことをおすすめします。
    また、転送先のトークルームは好きなところを選べますが、「1:1でLINE Notifyから通知を受け取る」にしておくとわかりやすいでしょう。
  8. 「発行する」
  9. 発行されたトークンを忘れずにコピーする

<2>Google Apps Scriptの設定

次に、Google Apps Scriptを使って、メールをLINEへ転送する設定を行います。

  1. Google Apps Scriptの公式ページにアクセス(LINEに転送したいGmailのアカウントでログイン
  2. 「新規プロジェクト」をクリック
  3. 下記のコードを削除する
  4. function myFunction() {
    }

  5.  下記のコードをコピペする
    var lineToken = "xxxxxxxxxxxxxx"; //LINE notify token
    var get_interval = 5; //●分前~現在の新着メールを取得 #--トリガーの時間間隔をこれに合わせる
    
    
    function send_line(Me){
     var payload = {'message' :   Me};
     var options ={
       "method"  : "post",
       "payload" : payload,
       "headers" : {"Authorization" : "Bearer "+ lineToken}  
     };
     UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
    }
    
    
    function fetchContactMail() {
     //取得間隔
     var now_time= Math.floor(new Date().getTime() / 1000) ;//現在時刻を変換
     var time_term = now_time - ((60 * get_interval) + 3); //秒にして+3秒しておく
     
     //検索条件指定
     var strTerms = '(is:unread after:'+ time_term + ')';
     
     //取得
     var myThreads = GmailApp.search(strTerms);
     var myMsgs = GmailApp.getMessagesForThreads(myThreads);
     var valMsgs = [];
     for(var i = 0; i < myMsgs.length;i++){
      valMsgs[i] = " " + myMsgs[i].slice(-1)[0].getDate().getMonth() + "/"+ myMsgs[i].slice(-1)[0].getDate().getDate()
      + " " + myMsgs[i].slice(-1)[0].getDate().getHours() + ":" + myMsgs[i].slice(-1)[0].getDate().getMinutes()
      + "\n[from]" + myMsgs[i].slice(-1)[0].getFrom()
      + "\n\n[subject]" + myMsgs[i].slice(-1)[0].getSubject()
      + "\n\n[Message]\n"+ myMsgs[i].slice(-1)[0].getPlainBody();
     }
    
     return valMsgs;
    }
    
    function main() {
     new_Me = fetchContactMail()
     if(new_Me.length > 0){
       for(var i = new_Me.length-1; i >= 0; i--){
         send_line(new_Me[i])
       }
     }
    }
  6. 先ほどLINE Notifyで発行したトークンをコード1行目の部分に書き換える

    var lineToken = “xxxxxxxxxxxxxx“;

  7.  「メニュー」→「ファイル」→「保存」
  8. 「関数を選択」→「main」に切り替える
  9. 「実行」をクリックする
  10. 「許可を確認」
  11.  警告メッセージが表示されるので、「詳細」をクリック
  12. 「安全ではないページ」に移動する
  13. 「許可」をクリック

以上で設定が完了しましたので、正常に機能するか確認してみましょう。

  1. テストメールをGmailに送信する
  2. Google Apps Scriptのスクリプト画面内で「▶︎」をクリック
  3.  LINEに転送されていれば成功

<3>トリガーの設定

GmailをLINEに転送することに成功しましたが、今の状態では自分で「▶︎」を押さないと転送されません。
そこで、一定時間ごとに自動転送される設定を行いましょう。

  1. Google Apps Scriptの公式ページを開く
  2. 「メニュー」→「編集」→「現在のプロジェクトのトリガー」
  3. 「トリガーを追加」をクリック

  4. 以下の内容でトリガーを設定する

    ・実行する関数:main
    ・実行するデプロイ:Head
    ・イベントのソース:時間主導型
    ・時間ベースのトリガーのタイプ:分ベースのタイマー
    ・時間の間隔:自分の好きな時間間隔で設定する

  5. トリガーを設定したら「保存」を押す

    以上の設定により、今後は自動的にGmailがLINEに転送されるようになりました。

Column LIST  →