【非エンジニアでも簡単】大学メールをLINEに通知する

メールなんて見ねえよという大学生多いのではないでしょうか？自分も全くメールを確認しないせいで大学の情報を確認するのが遅れるなんてこと結構ありました。LINEに通知できたらなと思い立ち今回作成することにしました。非エンジニアでも実装できるようにハンズオン形式で解説します。<strong>＊OutlookメールをGmailに転送してLINEに通知します。転送先のGmailが受け取ったメール全てをLINEに通知します。</strong>

![GmailNotify.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/2a5a34d3-76a6-035c-946e-840f84cd0c37.png)

## OutlookからGmailに転送する

今回はブラウザ版のOutlookを開きます。

https://outlook.office.com/mail/

「Outlookのすべての設定を表示」をクリック

![スクリーンショット 2022-01-13 1.21.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/2f3bfbe3-bfe2-f8b4-3e89-d21f9373879a.png)

「転送を有効にする」にチェックを入れ、メールの転送先に自分のメールアドレスを記入してください。<strong>＊「転送されたメッセージのコピーを保持する」にチェックを入れておかないとOutlookに履歴が残らないので注意</strong>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/b9d7b60b-f4de-3c6f-9d2f-4dd932239f45.png)


## LINEBotのセットアップ

以下のサイトを開きます。

https://developers.line.biz/ja/

「コンソール」をクリックしてご自身のLINEアカウントでログインしましょう。

![スクリーンショット 2022-01-13 15.22.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/b5241538-af53-04e3-200d-05bea1b7773c.png)

「Provider name」を決めましょう。大学メールなどとしておきましょう。

![スクリーンショット 2022-01-13 2.53.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/ad60673d-59d1-055b-d6eb-aa1a198e12ba.png)

ログインできましたら「Create a Messanging API Channel」をクリックしてください。

![スクリーンショット 2022-01-13 2.54.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/e9e0f141-1209-c81c-74f9-d1a82a629f46.png)

LINEBotの各種設定があります。Channel iconやChannel nameなど様々な記入箇所がありますが好きな画像、名前でOKです。LINEBotのアイコン画像、名前になります。

![スクリーンショット 2022-01-13 2.57.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/c7dbe225-5d22-2d44-53ac-07a30215c3ae.png)

記入できましたら「Create」をクリック

![スクリーンショット 2022-01-13 15.25.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/b191a946-0009-b4fc-9db2-96b5a23f3594.png)

作成できましたらLINEBotを友達追加しましょう。QRコードを読み込んでください。

![スクリーンショット 2022-01-13 15.27.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/2dc8033d-8e37-3376-3082-eb7de6fcbf07.png)


プログラムを動かすのに必要な「access token」を取得するため「issue」をクリックします。長い文字列がでてくると思いますので控えておいてください。


![スクリーンショット 2022-01-13 15.27.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/e84d3f4e-9130-a82e-41f2-4a182a1b1d59.png)

## GoogleAppsScriptにプログラムを記述

GoogleChromeを開きGoogleドライブをクリックしてください。

![スクリーンショット 2022-01-13 1.46.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/5294713d-d11f-2202-5bad-2bf8f04a74b0.png)

「新規」をクリックしてください。

![スクリーンショット 2022-01-13 1.50.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/c7cd17f6-d074-36b9-eaeb-031a551402b5.png)

「その他」→ 「GoogleAppsScript」をクリックしてください。

![スクリーンショット 2022-01-13 1.53.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/ad7e6ee9-2362-fb10-576c-08a660641304.png)

以下のような画面が出てくると思います。現在記述されているコードを消して下記のコードを貼り付けてください。先程LINE Developersで取得した長い文字列(access token)と転送先Gmailのメールアドレスは自分のものに変更してください。

![スクリーンショット 2022-01-13 1.57.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/259882d1-c1a0-c5d0-d30e-2889d4b83825.png)

```js:gmail.gs

var LINE_ACCESS_TOKEN = "<取得したaccess token>";
var query = "＜転送先Gmailのメールアドレス＞";

// 条件を満たすGmail検索
function searchGmail(){
  const date = new Date();
  const unixTime = date.getTime();
  const now = Math.floor(unixTime/1000);
  const term = now - 300;
  const strTerms = 'after:'+ term;
  const myThreads = GmailApp.search(strTerms, 0, 30);
  const myMessages = GmailApp.getMessagesForThreads(myThreads);
  getGmail(myMessages);
}

// 検索したGmailのメッセージを取得
function getGmail(myMessages) {
  for(var i in myMessages){
    for(var j in myMessages[i]){
        var strDate = myMessages[i][j].getDate();
        var strmsg = Utilities.formatDate(strDate, 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss')+"\n";
        strmsg += myMessages[i][j].getSubject() + "\n";
        // メールの本文全て受け取るなら.slice(0,200)を消してください
        strmsg += myMessages[i][j].getPlainBody().slice(0,200);
        sendLineMessage(strmsg);
    }
  }
}

//LINEにメッセージを送信する
function sendLineMessage(msg) {
  var headers = {
    "Authorization": "Bearer " + LINE_ACCESS_TOKEN,
    "Content-Type": "application/json"
  };
  var data = {
    'messages': [
            {
                "type": "text",
                "text": msg,
            }
    ]
  };
  var options = {
    "headers": headers,
    "method": "post",
    "payload": JSON.stringify(data),
  };
  var response = UrlFetchApp.fetch("https://api.line.me/v2/bot/message/broadcast", options);
}

```

コードを貼り付けることができたら保存ボタンをクリックし「searchGmail」と表示されていることを確認してください。

![スクリーンショット 2022-01-13 2.15.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/561efca7-0c88-0a3c-e288-d1e2c9266b29.png)

次にプログラムを実行するトリガーを設定します。

![スクリーンショット 2022-01-13 2.23.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/d872b76b-1fd9-47b7-b69b-22b1e1b98dd4.png)

実行する関数を「searchGmail」に設定し、エラー通知設定に関してはどちらでも構いません。

![スクリーンショット 2022-01-13 2.30.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/0cbc7a49-82e8-0880-51eb-f2b7c6a960bc.png)

５分ベースのタイマーになるように設定します。完了したら「保存」をクリックします。

![スクリーンショット 2022-01-13 2.29.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/4d524a87-6de6-6daa-1428-226f2db2a488.png)

保存をクリックするとGoogleログインを求められログインすると以下のような画面が出てくる可能性があります。その場合は「詳細」をクリックします。

![スクリーンショット 2022-01-13 2.36.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/fba5228c-2f26-82e9-acbe-cf34ed37d675.png)

「安全ではないページに移動」をクリックします。

![スクリーンショット 2022-01-13 2.39.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/63a7c63d-ce7f-968a-ecea-901989e4a186.png)

GoogleAppsScriptがGoogleアカウントへのアクセスを許可します。「許可」をクリックします。

![スクリーンショット 2022-01-13 2.41.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/6f795908-365c-a015-d4c7-8a1df47d86fa.png)

以上で大学メールをLINEに通知されることを確認してみてください。何かわからないことがあれば是非ご質問ください。