新潟 ホームページ制作「ZANMAI株式会社」 a-blog cms実装の定額制ホームページ制作プラン「サブスクWeb」

スキルブログ

メールをLINEに転送する方法

NTTドコモ モバイル社会研究所の調査によると、2023年1月現在でLINE普及率は83.7%です。
https://www.moba-ken.jp/project/service/20230417.html

LINEは繋がっている人しかメッセージが来ないのに対し、メールは自分のメールアドレスが悪用されるリストに載ってしまうと、SPAMメールや迷惑メール、営業メールと必要ないメールまで届きます。
私も、いろいろブロック設定していますが、それでも1日100通以上は必要のないメールが届きます。

そうすると、本当に必要なメールを見落としてしまうこともあります。
これは、たぶん多くのお客様も感じていることでしょう。

たとえば、公式ホームページには「お問い合わせフォーム」がついていると思いますが、この大事なメールが埋もれてしまうと大変です。
このような大事なメールをLINEで受け取れるといいなと思っていたら、それができる方法を見つけました。

【方法1】LINEでメールを受け取る

コーディルテクノロジー株式会社が提供している「メールをLINEに転送する」というサービスを利用するのが、一番簡単かもしれません。
https://www.codyltech.com/


こちらは無料では、毎月10回までメールをLINEに転送することができます。それ以上も有料のクーポンを購入することで、転送回数を増量することができます。

使い方は、サービス専用のLINEのお友達になると、専用のメールアドレスを発行してくれます。
LINEに転送させたいメールのサーバー側の自動転送設定に、その専用のメールアドレスを追加すれば完了です。
(なので、メールのサーバー側の自動転送設定ができないと、上記も使えないことになります)

【方法2】GmailをGAS(Google Apps Script)を使ってLINEに転送する

こちらは、ITリテラシーがないと出来ないかもしれませんが、転送数の制限はないので設定さえしてしまえば、無料で使い続けられます。
ステップは以下の3つです。

  • Step1:LINE Notify(ラインノティファイ)でトークンを取得
  • Step2:Google Apps Script(GAS)でLINEへの転送設定
  • Step3:トリガーの設定

やってみました。

Step1:LINE Notify(ラインノティファイ)でトークンを取得

1.LINE Notifyの公式サイトへアクセス

2.自分のLINEログイン情報で「LINE Notify」にログイン


LINE Notifyの公式サイトへアクセス

3.名前のところから「マイページ」を開く


4.「アクセストークンの発行」(開発者向け)を開き、「トークンを発行する」をクリック


5.「トークン名」を決めて入力し、メールを転送したいトークルームを選択

※トークン名は、通知の際最初に表示されますので、わかりやすい名前がいいです。
例)Gmail、メール転送
※トークルームは、自分だけに送りたい場合は一番上に自動で表示される「1:1でLINE Notifyから通知を受け取る」を選択、それ以外のグループに投稿したい場合はグループを選択する。


6.発行するをクリックし、発行されたトークンを忘れずにコピーし、画面を閉じる。


Step2:Google Apps Script(GAS)でLINEへの転送設定

1.Google Apps Scriptの公式ページにアクセスし、「Start Scripting(スクリプトを開始する)」をクリック
https://www.google.com/script/start/

※LINEに転送したいGmailのアカウントでログインしていることを確認ください。


2.「新しいプロジェクト」をクリック


3.下記のコードを削除する

function myFunction() {
}

4.下記のコードをコピーし、削除したところに貼り付け

※1行目の”xxxxxxxxxxxxxx”に、先ほどLINE Notifyで取得した「トークン」を入力してください

注意)トークン前後の「”」等が全角になってしまう場合があります。半角になっていることを確認して、保存してください。

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()+1) + "/"+ 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])
   }
 }
}

5.プロジェクト名を書き換え、保存

6.アクセス権の設定「send_line」→「main」を選択し、「実行」をクリック


7.「権限を確認」をクリック


8.連携したいGoogleアカウントを選択

9.「詳細」をクリック後、転送に***(Gmail to LINE)移動と書いてある箇所をクリック


10.連携したアカウントであることを確認し、「許可」をクリック


以上でStep2が完了しました!

まず、ここで正常に動作するか確認しましょう。

  • テストメールをGmailに送信する。
  • Google Apps Script(GAS)のエディター・コード画面内で「▷実行」をクリック。
  • LINEにGmailに届いたメールが転送されていれば成功。

Step3:トリガーの設定

1.Step2で作成したGoogle Apps Script(GAS)プロジェクトの画面を開く

2.左の「メニュー」から「トリガー(目覚ましマーク)」をクリック

3.右下の「トリガーを追加」をクリック


4.下記内容で内容でトリガーを設定

  • 実行する関数:main
  • 実行するデプロイ:Head
  • イベントのソース:時間主導型
  • 時間ベースのトリガーのタイプ:分ベースのタイマー
  • 時間の間隔:※コード2行目で設定した分を選択(今回の場合は5分でコードを書いているので、5分を選択)

5.最後に少し下にスクロールをして「保存」をクリック

3Stepは完了です!再度テスト送信をしてみてください

本文まで見たい場合

今回の設定は、Gmailの件名までを通知する形ですが、本文も見たい!という方は、以下のコードに差し替えてください。

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

これで、テスト送信し本文まで見れたら設定完了です。

大切なメールは、LINEで受け取った方がいいものは、試してみてください。