GMailからLINEへ転送する

GMailからLINEへ転送するやり方をまとめました。IFTTTがあれば簡単にできたのですが、IFTTTなき今、「Google Apps Script」を使います。

プログラムを使いますが、コピペして1行変えるだけですので安心して読んでください!

準備その1 LINEとの接続キーをもらう

LINE Notifyというところから通知がくるようになります。
まずはそれを使うためのキー(アクセストークン)をゲットしましょう。

ページ数が多くなるので、別記事にしました。以下をご覧ください。

準備その2 Google Apps Script

次はプログラミングです。
作業をしていると、プログラム画面とかが出てきてビビります。が、、、ビビらないでください!LINEのアクセストークンを1箇所貼り付けるだけです! それ以外は一切変更不要です♪

以下のページを参考にさせていただきました。yuuさんのおかげでビビらずにこのフェーズを乗り越えることができました♪
https://note.com/yuut6/n/nb3528b53ddfa

  • デフォルトで記入されているもの(function myFunction(){})をすべて消し、以下のプログラムをコピペ
var lineToken = "xxxxx"; //LINE notify token
var words = ""; //検索したい文字をスペースで区切って入れてください (例)あああ いいい ううう
var f_body = 0; //0:通知に本文を表示させない、1:通知に本文を表示させる
var interval = 1; //何分前からの新着メールを確認する?


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 * interval) + 3); //秒にして+3秒しておく
 
 //検索条件指定
  var strTerms = '(subject:{' + words + '} 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" + myMsgs[i].slice(-1)[0].getSubject()
   
   if(f_body == 1){
     valMsgs[i] = valMsgs[i] + "\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])
   }
 }
}
  • プログラムを書き換える
    1. 1行目の「lineToken=”xxxxxx”の xxxxx を、LINEのアクセストークンに書き換える
      ~2行目以降は変更不要です。お好みで♪~
    2. 2行目はそのままでもOKです。(全部の未読メールがLINEに来ます)
      もしタイトル(subject)に検索をかけたい場合は、 2行目の””の中に、にそのワードをスペースで区切って入力(or条件で検索をかけます)
    3. 3行目もそのままでもOK。もしLINE通知に本文の内容まで載せたい場合は、「0」を「1」に変更してください。
    4. 4行目もそのままでOK。「何分前の未読メールをチェックするか」を指定します。この後の「トリガー設定」にも影響するので、そのままが無難です。
書き換える場所は、ここだけです。
  • プログラムを保存する(Ctrl+Sか、ファイル→保存)
  • 保存ボタンを押すとプロジェクトの名前を聞いてくるので、任意の名前を入力する。(なんでもいいです。以下の画像の「GMAILtoLINE」のところ)

次はテスト実行です!

準備その3 テスト実行

  • まずは自分あてにメールを送信する。
  • 実行→関数を実行→「main」を実行する(1分以内に実行してください)

最初に実行する場合、googleアカウントへの接続承認画面が出てきます。
進めていくと、以下のような画面が出てきてビビりました。

焦らず「詳細」をクリックすると、以下の文章が出てきますので、そこにあるリンク(以下の例では「GMAILtoLINE(安全ではないページ)に移動」)をクリックすればOKです。

  • すでに1分以上経過していると思うので、再度メール送信
  • 実行→関数を実行→「main」を実行する

どうですか?届きましたか?届けば成功です!!

準備その4 トリガーの設定

準備2で作ったプログラムを、1分ごとに実行するための準備です。

  • 編集→「現在のプロジェクトのトリガー」をクリック
  • 右下にある「トリガーを追加」をクリック(見落としがち!)
  • 以下のような設定にする

これで準備はすべて完了!

自分で自分にメールを送って、試してみてください♪1分以内にLINEに通知が届くはず!!

が、これでは、全件(もしくは固定キーワードでタイトル検索)転送されてしまいます。ウザいですよね。

というわけで、特定のメールだけ転送するようにしましょう。(以下の記事にまとめました)

コメントを残す

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

CAPTCHA