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
- https://script.google.com/home 行く
- 左上の「新しいプロジェクト」をクリック

- デフォルトで記入されているもの(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行目の「lineToken=”xxxxxx”の xxxxx を、LINEのアクセストークンに書き換える
~2行目以降は変更不要です。お好みで♪~ - 2行目はそのままでもOKです。(全部の未読メールがLINEに来ます)
もしタイトル(subject)に検索をかけたい場合は、 2行目の””の中に、にそのワードをスペースで区切って入力(or条件で検索をかけます) - 3行目もそのままでもOK。もしLINE通知に本文の内容まで載せたい場合は、「0」を「1」に変更してください。
- 4行目もそのままでOK。「何分前の未読メールをチェックするか」を指定します。この後の「トリガー設定」にも影響するので、そのままが無難です。
- 1行目の「lineToken=”xxxxxx”の xxxxx を、LINEのアクセストークンに書き換える

- プログラムを保存する(Ctrl+Sか、ファイル→保存)
- 保存ボタンを押すとプロジェクトの名前を聞いてくるので、任意の名前を入力する。(なんでもいいです。以下の画像の「GMAILtoLINE」のところ)

次はテスト実行です!
準備その3 テスト実行
- まずは自分あてにメールを送信する。
- 実行→関数を実行→「main」を実行する(1分以内に実行してください)

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

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

- すでに1分以上経過していると思うので、再度メール送信
- 実行→関数を実行→「main」を実行する
どうですか?届きましたか?届けば成功です!!
準備その4 トリガーの設定
準備2で作ったプログラムを、1分ごとに実行するための準備です。
- 編集→「現在のプロジェクトのトリガー」をクリック

- 右下にある「トリガーを追加」をクリック(見落としがち!)

- 以下のような設定にする

これで準備はすべて完了!
自分で自分にメールを送って、試してみてください♪1分以内にLINEに通知が届くはず!!
が、これでは、全件(もしくは固定キーワードでタイトル検索)転送されてしまいます。ウザいですよね。
というわけで、特定のメールだけ転送するようにしましょう。(以下の記事にまとめました)