メールをラインに転送する方法! iPhone/AndroidのGmailを自動でLINEに通知しよう

スポンサーリンク
LINE

もしGmailのアイコンGmailに届くメールを、自動でLINEアプリのアイコンLINEへ転送できたら便利ですよね。

本記事では、Google Apps ScriptのアイコンGAS(Google Apps Script)とLINE Notifyを連携させて、新着メールをLINEに届ける仕組みを紹介します。

本記事の内容は、iPhone・Android両方に対応しています。ただ事前の設定作業はパソコンでの操作がオススメです。
以前までならIFTTTアプリのアイコンIFTTT(イフト)という自動化アプリと連携すればカンタンに実現できましたが、2019年3月末でサポート終了となったため、現在では対応していません。参考 IFTTT – Gmailサービスとの連携終了について

 

スポンサーリンク
スポンサーリンク

Gmailの新着メールをLINEに自動転送する方法

説明の流れ
  • 手順①
    LINE Notifyのトークンを取得する
  • 手順②
    Google Apps Scriptを設定する
  • 手順③
    Google Apps Scriptにデータへのアクセス権を付与する
  • 手順④
    Gmail→LINEの自動転送を検証する
  • 手順⑤
    Google Apps Scriptのトリガーを調整する
  • 参考
    メール本文も含めLINEに転送する方法
  • 参考
    Gmail以外のメールもすべてLINEに通知する方法

手順①:LINE Notifyのトークンを取得する

メールを通知させたいLINEアプリのアイコンLINEアカウントで、LINE Notifyのトークンを発行します。

【LINE Notifyとは?】外部Webサービスと通知連携させるLINE公式サービスのこと。使用料金は無料。IFTTTやGAS(Google Apps Script)など、様々なサービスと連携できる。参考 LINE Notify – ヘルプ

まずLINEアプリのアイコンLINEアカウントのID・パスワードを確認して下さい。

LINE Notifyのトークンを取得する手順1

“設定” → “アカウント” よりID(メールアドレス)とパスワードを確認できる。

次にLINE Notify公式ページで、ログイン よりLINEアプリのアイコンLINEアカウントを入力し、

LINE Notifyのトークンを取得する手順2

マイページ を開きます。

LINE Notifyのトークンを取得する手順3

「アクセストークンの発行(開発者向け)」項目にて、トークンを発行する をクリック。

LINE Notifyのトークンを取得する手順4

スマートフォンからアクセスしている場合、ブラウザの設定で表示形式を「PC向け」へ変更しないと、トークンを発行する が表示されません。

「トークン名」と「メールの通知を受け取るトークルーム」を選択します。

「トークン名」は何でもOKですが、メールがLINEアプリのアイコンLINEへ通知される際のタイトルに表示されるため、分かりやすい&短い単語がオススメです。

「トークルーム」は既存のグループトークを選ぶこともできますが、個人で受け取るだけなら「1:1でLINE Notifyから通知を受け取る」でよいでしょう。

LINE Notifyのトークンを取得する手順5

「トークン名」と「トークルーム」を選択できたら、発行する をクリック。

LINE Notifyのトークンを取得する手順6

トークンが発行されます。

1度しか表示されないため、コピーしましょう。

LINE Notifyのトークンを取得する手順7

手順②:Google Apps Scriptを設定する

新着メールをLINEアプリのアイコンLINEに届ける仕組みを、Google Apps ScriptのアイコンGAS(Google Apps Script)で設定します。

まずGoogle Apps ScriptのアイコンGAS(Google Apps Script)へアクセスして、LINEアプリのアイコンLINEへ転送したいGmailのアイコンGmailアドレスのアカウントでログインします。

Google Apps Scriptを設定する手順1

新規スクリプト を開きます。

Google Apps Scriptを設定する手順2

デフォルトで下記コードが入っていますが、削除の上、

function myFunction() { 
}

Google Apps Scriptを設定する手順3

下記コードをコピペします。

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();
 }

 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])
   }
 }
}

引用元 note – 親玉Gmailの新着通知をLINEで受け取る(by GAS)

Google Apps Scriptを設定する手順4

なお、手順①で取得したLINE Notifyのトークンを、コード1行目の部分に書き換えるのを忘れずに。

var lineToken = "xxxxxxxxxxxxxx";

メニュー ファイル保存 より、コードを保存します。

コードを保存する際、「Project Name」の入力が求められますが、何でもOKです。

Google Apps Scriptを設定する手順5

Google Apps ScriptのアイコンGAS(Google Apps Script)で設定するコードは以上です。

手順③:Google Apps Scriptにデータへのアクセス権を付与する

Google Apps ScriptのアイコンGAS(Google Apps Script)がGoogleアカウントのデータへアクセスできるよう、初期設定が必要です。

スクリプト画面内で 関数を選択 より main へ切り替え、

Google Apps Scriptにデータへのアクセス権を付与する手順1

▶実行をクリックすると(初回のみ)次のメッセージが表示されます。

Authorization required
●●(プロジェクト名) needs your permission to access your data on Google.

画面に従って 許可を確認 へ進み、

Google Apps Scriptにデータへのアクセス権を付与する手順2

次の警告メッセージが表示されますが、詳細 をクリック。

このアプリは確認されていません
このアプリは、Googleによる確認が済んでいません。
よく知っている信頼できるデベロッパーの場合に限り続行してください。

Google Apps Scriptにデータへのアクセス権を付与する手順3

隠れていた「●●(安全ではないページ)に移動」リンクを開き、

Google Apps Scriptにデータへのアクセス権を付与する手順4

許可 をクリックすればOK。

Google Apps Scriptにデータへのアクセス権を付与する手順5

手順④:Gmail→LINEの自動転送を検証する

Google Apps ScriptのアイコンGAS(Google Apps Script)が機能するか検証しましょう。

テストメールをGmailのアイコンGmailで受信した後、スクリプト画面内の▶実行をクリックして下さい。

Gmail→LINEの自動転送を検証する手順1

GmailのアイコンGmailに届いたテストメールが、LINEアプリのアイコンLINEに転送されていれば成功です!

Gmail→LINEの自動転送を検証する手順2

手順⑤:Google Apps Scriptのトリガーを調整する

Google Apps ScriptのアイコンGAS(Google Apps Script)のスクリプト画面で▶実行をクリックせずとも、一定時間ごと自動起動するような設定をします。

メニュー 編集現在のプロジェクトのトリガー より、

Google Apps Scriptのトリガーを調整する手順1

トリガーを追加 へ。

Google Apps Scriptのトリガーを調整する手順2

次の内容でトリガーを 保存 します。

  • 実行する関数:main
  • 実行するデプロイ:Head
  • イベントのソース:時間主導型
  • 時間ベースのトリガーのタイプ:分ベースのタイマー
  • 時間の間隔:5分おき

Google Apps Scriptのトリガーを調整する手順3

これでGoogle Apps ScriptのアイコンGAS(Google Apps Script)のスクリプトが、5分おきに自動起動(=5分おきにGmailのアイコンGmailの新着メールをLINEアプリのアイコンLINEに通知)するようになりました。

もし時間間隔を調整したい場合、スクリプト2行目(var get_interval = ●;)の数字を修正の上、トリガー内「時間の間隔」もこの数値に合わせて下さい。

参考:メール本文も含めLINEに転送する方法

もしGmailのアイコンGmailに届いた新着メールの本文まで含めLINEアプリのアイコンLINEに通知したい場合、Google Apps ScriptのアイコンGAS(Google Apps Script)のスクリプトを下記へ変更して下さい。

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])
   }
 }
}
33行目にコードを追加しています。

新着メールの本文まで含め、LINEアプリのアイコンLINEに転送されることを確認できれば成功です。

メール本文も含めLINEに転送する方法

参考:Gmail以外のメールもすべてLINEに通知する方法

もしGmailのアイコンGmail以外のメールもすべてLINEアプリのアイコンLINEへ転送したい場合、次の仕組みを構築すれば実現できます。

  1. すべてのメールをGmailアドレスへ転送させる
  2. Gmailに届くメールをLINEへ転送させる

2については、ここまで紹介した手順の通りです。

1については、メールアドレスごと「自動転送」設定を施せば、Gmailアドレスへ転送できます。

例えばPOPアクセスが可能なメールアカウント(例:Yahoo!メール / Outlook)の場合、Web版Gmailにて 設定アカウントとインポート より メールアカウントを追加する と進めば、

Gmail以外のメールもすべてLINEに通知する方法

Gmailアドレス(@gmail.com)で、他アカウント(例:Yahoo!メール / Outlook)のメールを受信できます。

うまく設定すれば、すべてのメール着信をLINEにまとめて管理できます。

参考 Gmailヘルプ – 他のアカウントのメールを確認する

 

補足:

そのほかLINEに通知をまとめる方法

自動化アプリIFTTTアプリのアイコンIFTTTと連携することで、様々な通知をLINEアプリのアイコンLINEへまとめることが可能です。

IFTTT

IFTTT

IFTTT無料posted withアプリーチ

本記事で取り上げた「メールをLINEへ自動転送する」設定も、以前までならIFTTTアプリのアイコンIFTTTと連携すればカンタンに実現できました。

が、2019年3月末でサポート終了となったため、現在では対応していません。

参考 IFTTT – Gmailサービスとの連携終了について

IFTTTアプリのアイコンIFTTTとLINEアプリのアイコンLINEの設定パターンを紹介します。

2台持ちで不在着信をLINEに通知する方法

下記リンクをタップすれば、自動でこのレシピを設定できます。

レシピ IFTTT – 不在着信があったらLINEに通知する

Androidの不在着信がiPhoneのLINEへ通知される

Android(サブ端末)の不在着信がiPhone(メイン端末)のLINEへ通知される例。

詳細は関連記事【IFTTT – 2台持ちの着信通知を統一する方法! AndroidからiPhoneへ電話やSMSの知らせを転送するアプリ】で解説しています。

IFTTT - 2台持ちの着信通知を統一する方法! AndroidからiPhoneへ電話やSMSの知らせを転送するアプリ
この記事では、2台持ちのスマホで不在着信やSMSの通知をまとめる方法を解説します。アプリIFTTTでAndroidからiPhoneへお知らせを統一できます。

twitterのエゴサーチ結果をLINEに通知する方法

twitter上でのエゴサーチ結果をLINEに通知する手順

IFTTTのレシピ設定例。

詳細は関連記事【IFTTTとLINEを連携させてtwitterのエゴサーチ結果を自動化に通知する方法 [iPhone/Android]】で解説しています。

IFTTTとLINEを連携させてtwitterのエゴサーチ結果を自動化に通知する方法 [iPhone/Android]
twitterでエゴサーチをしたことはありますか? エゴサーチとは、インターネット上で、自分の本名やハンドルネーム、運営しているサイト名やブログ名を検索エンジンを使って、自分自身の評価を確認する行為のことである。略してエゴサともいう。 引用...

雨の天気予報をLINEに通知する方法

雨の天気予報をLINEに通知する手順

明日の天気情報が届く。

詳細は関連記事【雨の天気予報をLINEに通知する方法! IFTTTと連携して天候の変化を自動で知らせる [iPhone/Android]】で解説しています。

雨の天気予報をLINEに通知する方法! IFTTTと連携して天候の変化を自動で知らせる [iPhone/Android]
この記事では、IFTTTを使って天気予報をLINEに通知する設定を解説します。「天気が雨に変わりそうなとき」・「明日の天気予報が雨のとき」、自動でLINEにメッセージを届けることが可能です。

その他LINE関連の便利な豆知識まとめ

本ブログでは他にもLINEアプリのアイコンLINEをもっと上手に使う情報を沢山掲載しています。

例えば、LINEには下記原則がありますが、

  • 同じ端末で複数LINEアカウントを運用できない

LINEアプリのアイコンLINEアプリのバックアップ機能を応用すれば、トーク履歴を維持したまま同スマートフォン上で複数アカウントを切り替えることができます。

同じ端末で複数LINEアカウントを切り替える方法! 1台のiPhone/Androidで2つのIDを同時に使おう
この記事では、1台のスマートフォンで複数のLINEアカウントを切り替える方法を解説します。強制ログアウトや専用アプリを使って、異なるアカウントを使い分けることが可能です。

同様の裏ワザ的な豆知識をまとめて、関連記事【LINE関連の便利な豆知識まとめ! 裏ワザ的な方法でiPhone/Androidのラインを使いこなそう】で解説しています。

LINE関連の便利な豆知識まとめ! 裏ワザ的な方法でiPhone/Androidのラインを使いこなそう
本ブログでも過去、「LINE」アプリに関わる豆知識を色々と紹介してきました。 最早スマートフォンで必須ともいえる同アプリですが、他SNSサービス(例:twitter / facebook)と比較してアカウント管理やファイルバックアップに独特...

 

〆:LINEにメール通知をまとめよう!

以上、メールをラインに転送する方法! iPhone/AndroidのGmailを自動でLINEに通知しよう の說明でした。

GmailのアイコンGmailをチェックするのが面倒であれば、今回紹介した設定によりLINEアプリのアイコンLINEへ通知が集約できて便利ですよ。

ぜひ、お試しあれ。

参考 Qiita – [Gmail to LINE]GASで新着メールをLINEに転送する

参考 note – 親玉Gmailの新着通知をLINEで受け取る(by GAS)

LINE
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク

コメント

  1. 匿名 より:

    新着メールってチェックするまで永遠通知来る気がするのですが、自分のやり方が悪いのでしょうか。

  2. 匿名 より:

    画像は転送できないのでしょうか。

    • ハマるくん より:

      私もこれにハマっておりましたが、LINE notifyを設定したルームに招待することで解決できました。一度試してみて下さい。

  3. まよいちゃん より:

    https://notify-api.line.me のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: {“status”:400,”message”:”LINE Notify account doesn’t join group which you want to send.”}(応答の全文を見るには muteHttpExceptions オプションを使用してください)(行 12、ファイル「コード」)

    このエラーが出てしまい、どうしていいかわかりません;;

    ご教授お願いいたします。

    • ハマるくん より:

      私もこれにハマっておりましたが、LINE notifyを設定したルームに招待することで解決できました。一度試してみて下さい。

      • 野菜 より:

        https://notify-api.line.me のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: {“status”:400,”message”:”LINE Notify account doesn’t join group which you want to send.”}(応答の全文を見るには muteHttpExceptions オプションを使用してください)(行 12、ファイル「コード」)

        上記が出て設定が進みません。

        グループラインにLINE notifyを招待すれば解決しますか?

        ご教示いただけますと幸いです。

  4. 匿名 より:

    すごく役に立ちました!
    1000文字までしか転送できないのですが、どうしたら良いでしょうか?
    (分割するなど)

  5. 匿名 より:

    とっても参考になりました。ありがとうございます。

    一つ質問なのですが、「メール自動振り分け設定」したフォルダだけのMailをLINEに転送することは可能でしょうか?

    アドバイスいただければ幸いです。
    よろしく願いします。

    • tomoya より:

      私も、「メール自動振り分け設定」したフォルダだけのMailをLINEに転送と、添付ファイルの転送がしたいです。
      お解りになる方がいましたら、ご教示のほど宜しくお願い致します。

    • 匿名 より:

      ラベル付け(振り分け)をしたメールのみを通知するには「//検索条件指定」の部分にラベルを検索条件として追加すれば良いかと思います。
      var strTerms = ‘(label:XXXXX is:unread after:’+ time_term + ‘)’;

  6. エフサービス より:

    大変参考になりました。有難うございます。

  7. TAG より:

    拝見しました。大変素晴らしいものだと思います。私は今グループラインでそのbotを使って私に送られてきたメッセージをグループの仲間に共有する、ということをしているのですが、その際に送られてくるメッセージの中の、メールアドレスを消去したいです。どうしたらよいでしょうか。私自身多少の経験はあるのですが、思いつかなかったため質問させていただきました。

  8. H2 より:

    大変参考になりました。ありがとうございます。
    一点、getMonth()だけは0-11で返るということで、値を+1する必要があるかと思います。

  9. H2 より:

    もう一点、受信時刻の「分」が1桁の場合に、ゼロ埋めされる方がいいかなと思います。

  10. 匿名 より:

    大変参考になりました。
    一点気になるのが、1日に数回と頻度は低いのですが、
    main サーバーエラーが発生しました。しばらくしてからもう一度試してください。
    というエラーが発生することがあり、原因が分かりません。

    お解りになる方がいましたら、ご教示のほど宜しくお願い致します。

  11. 山田さん より:

    アクセストークンの発行ボタンが出なくて困ってます。
    トークルームまでは選択できますがその先に進めません。
    何方か教えて下さい。

  12. てっちゃん より:

    おかげ様で転送出来るようになりました。
    ただ同じメールが何回も転送されて困ってます。
    何か対策は有りますでしょうか?
    宜しくお願いします。

  13. 匿名 より:

    大変勉強になりました、ただスレッドに複数ある場合にMAILを取得できずにずっとMAILが送られてきますがこれの対応できますか?

  14. やまおとこ より:

    このサイトを参考に転送できるようになりました。
    転送したGーMail側に既読を付けたいのですが中々上手くいきません教えて頂けませんでしょうか?

  15. 匿名 より:

    ほぼ同様のことをしたかったので、非常に参考になりました。ありがとうございます。
    日時の部分は、下記のようにする方が自由度が高く簡単かと思います。
    Utilities.formatDate(myMsgs[i].slice(-1)[0].getDate() , ‘Asia/Tokyo’, ‘MM/dd HH:mm’)

  16. AngelHiro より:

    大変参考になりました。
    最近のスマートウォッチはe-mail着信通知を装備していないものがあり、このスクリプトを実行することで補うことができ、大変ありがたく感謝しています。
    そこで、お願いなのですが最初の [Gmail] は不要であります。
    スマートウォッチには文字制限があるのでできるだけ表示を多くするためです。
    また、[Gmail] がなくてもメールとわかるからです。
    ぜひよろしくお願いします。

  17. pocopoco より:

    詳しいことはわからないので上記を丸々コピーして手順通りに設定したらラインに転送できるようになりましたが、日付が4/20になってしまいます。
    コメントにも少しあるようですが、よくわからないため、どこをどう変えればなおるか教えていただけませんでしょうか。

  18. hamu より:

    こちらを参考にしばらく前より実行させていただいておりましたが
    先日よりメール本文の改行全てに”>”が
    挿入されるようになって見づらくなってしまいました。
    これを表示させないにはどうしたらいいでしょうか?
    そもそも改行を削除してしまっても読みずらくなってしまいます。
    LineNotifyかGASのどちらかの仕様変更ではないかと思いますが
    よくわかりません。
    よろしくお願いいたします。

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