GメールをLINEに転送する 全件転送
バイクシェアサービスAirRideをやってます。
利用してくれた皆様に感謝です。
先日、予約が入っていたにもかかわらず、
利用希望日までに予約通知メールを認識できず、
結果、キャンセルになってしまうケースが発生。
個人的にメール離れしてしまっており、
確認頻度が減っていました。申し訳ないです。。
なにか、対策せねば!
昨今のコミュニケーションはもっぱらLINE。
な、の、で、
対策として、登録しているメールアカウントへの通知メールを確認頻度の高いLINEへ転送するようにしてみる。
転送対象は、僕のメールアカウントに届く下記のドメインのメール全てにしてます。
対象:@airride-bike.com
こんな方はぜひ。
・Gメールに届く重要メールが埋もれてしまうので、LINEに転送したい
重要なメールは人によって様々だと思うけど、
僕の家族内では重要メールは下記でした。
(全部、妻とのトークグループ作って、LINEに転送するようにしときました。)
・バイクシェアサービス「AirRide」の予約通知メール
・長男の幼稚園からの連絡メール
・習い事(塾や、スイミング)からの入館、退館通知
GMailからLINEへ転送する
GMailからLINEへ転送するやり方です。
「Google Apps Script」を使ってみます。
コードを書く必要があるけど、コピペして1行変えるだけでお手軽です。
準備その1 LINEとの接続キーをもらう
まず、LINE Notifyを使うためのキー(アクセストークン)をゲットします。
◆"LINE Notify"の概要
・トークルームにメッセージを送信できる
・LINEアクセストークンをアプリに指定することで、
特定のアクションが起きた時に、
通知メッセージを指定したトークグループに送付できる
◆手順
1.下記のページにてLINE Notifyにアクセス。
https://notify-bot.line.me/ja/
2.送付したいトークグループが存在するLINEアカウントにログインする。
3.ログイン後、左上のブラウザ設定「ぁあ」をタップし、「デスクトップ版Webサイト」を表示をタップする。
4.右上をタップしマイページを開く。「トークンを発行する」をタップする
5.「トークンを発行する」を画面に沿って入力。
6.トークン名を入力(自分が分かる名前であれば問題なし)
7.通知を送付したいトークグループを選択
8.「発行する」をタップ
9.画面上のコピーを押してアクセストークンをコピーする
準備その2 Google Apps Scriptで実行するプログラムを作成・デプロイ
Google Apps Script上で、実行するプログラムを作成/保存し、トリガー設定(プログラムを動かす契機を指定)します。
1.Google Apps Scriptへ行く。
https://script.google.com/home
2.「Start Scripting」を押下する。
3.転送したいメールが届くGメールアカウントでログインする。
4.左上の「新しいプロジェクト」をクリック
3.デフォルトで記入されているもの(function myFunction(){})をすべて消し、以下のプログラムをコピペする
【注意】
注意1:本手順はスマホ(iPhone)では、カーソルの移動とペーストがやり辛く、苦労したので、PCで実施しました。
注意2:日付、時刻を取得する関数がアメリカ時間(ワシントン)のようで、、日時が日本と14時間ズレます。(特に困らないので、日本に合わせる対応しませんでした。)
var lineToken = "xxxxxx"; //LINE notify token
var words = ""; //検索したい文字をスペースで区切って入れてください (例)あああ いいい ううう
var f_body = 1; //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 = '(label:yyyyyy subject:{' + words + '} is:unread after:' + time_term + ')';
//LINEへの転送情報を取得し整形する
//メモ:アメリカ(ワシントン)との時差は14時間
//メモ:getMonthは月に応じた0−11の整数を取得
var myThreads = GmailApp.search(strTerms);
var myMsgs = GmailApp.getMessagesForThreads(myThreads);
var valMsgs = [];
for (var i = 0; i < myMsgs.length; i++) {
var year = myMsgs[i].slice(-1)[0].getDate().getFullYear();
var month = myMsgs[i].slice(-1)[0].getDate().getMonth()+1;
var day =myMsgs[i].slice(-1)[0].getDate().getDate();
var japanHour = myMsgs[i].slice(-1)[0].getDate().getHours() + 14;
var minute = myMsgs[i].slice(-1)[0].getDate().getMinutes();
valMsgs[i] = " " + year + "_"+ month + "_" + day
+ " " + japanHour + ":" + minute
+ "\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])
}
}
}
4.コードを書き換える
・1行目
var lineToken = "xxxxxx"; //LINE notify token
「lineToken=”xxxxxx”の xxxxx を、LINEのアクセストークンに書き換える
~2行目以降は変更不要。お好みで。~
・2行目
var words = ""; //検索したい文字をスペースで区切って入れてください (例)あああ いいい ううう
そのままでもOK。(全部の未読メールがLINEに転送される)
もしタイトル(subject)に検索をかけたい場合は、 2行目の””の中に、検索ワードをスペースで区切って入力(or条件で検索を実行)
・3行目
var f_body = 1; //0:通知に本文を表示させない、1:通知に本文を表示させる
そのままでもOK。
LINE通知に本文の内容まで載せたくない場合は、「1」を「0」に変更する。
・4行目
var interval = 1; //何分前からの新着メールを確認する?
そのままでOK。「何分前の未読メールをチェックするか」を指定する。
この後の「トリガー設定」にも影響するので、そのままが無難。
5.プログラムを保存する
(Ctrl+Sか、ファイル→保存)
保存ボタンを押すとプロジェクトの名前を聞いてくるので、任意の名前を入力する。以下の画像の「GMAILtoLINE」のところ)
準備その3 テスト実行
まずは自分あてにメールを送信する。
実行→関数を実行→「main」を実行する(メール送付後、1分以内に実行)
最初に実行する場合、googleアカウントへの接続承認画面が出てくるので、ビビらず、「詳細」をクリック。
リンク(以下の例では「GMAILtoLINE(安全ではないページ)に移動」)をクリック。
すでに1分以上経過してい待っている場合は、再度メール送信
実行→関数を実行→「main」を実行する
届けば成功。
準備その4 トリガーの設定
準備2で作ったプログラムを動かすトリガー(契機)を設定します
1分ごとに実行するようにします。
編集→「現在のプロジェクトのトリガー」をクリック
右下にある「トリガーを追加」をクリック(見落としがち)
以下のような設定にする
これで準備はすべて完了。全件(もしくは固定キーワードでタイトル検索)転送されます。
特定のメールだけ転送する追加手順は、こちらに書きました。
更新履歴
20210112 初版投稿
関連知識に関する書籍
・Google App Script
この記事が気に入ったらサポートをしてみませんか?