【超初心者向け】特定のGmailだけLINEに転送したい

2022-06-28

こんにちは!スタッフNです。
今回は、【超初心者向け】GmailをLINEに転送する3Stepの番外編、「一定の「件名」のメールだけ、または一定の「送信元」のメールだけを転送する設定」についてです!

  • 新規メールは全部は転送されるのはちょっと・・・
  • SHOPに届いたメールだけ転送したい!
  • プライベートに届くメールだけ転送したい!

上記の方にはすごく便利だと思います!是非お試しください。

基本的なGmailをLINEに転送する設定については、下記をご覧ください!

一定の「件名」のメールだけ、または一定の「送信元」のメールだけを転送する設定に必要なツール2つ!

  • Gmailアカウント
    転送したい自分のGmailアカウント
  • Google Apps Script(GAS)
    【超初心者向け】GmailをLINEに転送する3Stepで設定した、Google Apps Script(GAS)のコード

設定はすべてパソコンで行います!

大まかなステップは2つ!

  1. Gmailでフィルタとラベルを設定
  2. Google Apps Scriptのコードを追記修正

主にGmailでの設定がメインです!Google Apps Scriptでの設定は、たった1行を書き換えるだけです。

さて!レッツチャレンジ!

Gmailでフィルタとラベルを設定!

Step1

1.Gmail を開く

2.①目的のメールの横にあるチェックボックスをオン
  ②その他アイコン その他 をクリック
  ③[メールの自動振り分け設定] をクリック

3.[フィルタを作成] をクリックします。

※特定のメールアドレスではなく、件名で振り分けをしたい場合は、「From」のメールアドレスを削除し、「件名」に転送したい件名を入れてください!

4.「ラベルを付ける」をクリック
※必要に応じてその他条件を選択ください。

【重要】
ここでつけた「ラベル名」を次のステップ「Google Apps Script(GAS)のコード」修正で使用しますので、必ず控えてください!

Gmailの準備が整いました!

ここからStep2

Google Apps Script(GAS)でソースコードを追記修正

1.Google Apps Scriptの公式ページにアクセス

2.自分のプロジェクトをクリックし、「【超初心者向け】GmailをLINEに転送する3Step」で作成したプロジェクトを選択

3.下記2つのコードを追記修正します

①3行目に下記を追加
var words = “”;

②22行目を(修正後)に変更
(修正前)
var strTerms = ‘(is:unread after:’+ time_term + ‘)’;
     ↓
(修正後)
var strTerms = ‘(label:*** subject:{‘ + words + ‘} is:unread after:’+ time_term + ‘)’;

label:*** subject:{‘ + words + ‘}

***の部分に、先ほど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()+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])
   }
 }
}

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

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

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

以上で設定は終了です!お疲れ様でした!

上手く動かなかった方は、Zoomにてフォロー(有償)させていただきます。「こんなことはできるの?」というご相談もお気軽にお寄せください。


カテゴリー:技術ブログ

今一番おすすめ!

三重県でIT会社をお探しの方に「三重県IT企業一覧」【追加掲載依頼受付中】

三重県にIT企業ってどれぐらいあるのだろう?からスタートしました!こちらから≫