この記事ではこういった疑問にお答えします。
少しでも疑問を解決する手助けとなれば幸いです。
【簡単】GmailのメールをLINEに転送する方法【GAS】
以下の3ステップで、Gmailに届いたメールをLINEに転送することができます。
- LINE Notifyでアクセストークンを発行
- Google Apps Script(GAS)の設定
- トリガーの設定
それぞれ解説していきます。
1. LINE Notifyでアクセストークンを発行
まずは、LINE Notifyでアクセストークンを発行します。
以下の画面からログインしてください。
ログインしたら、マイページに移動します。
そして、アクセストークンを発行します。
自分だけに送りたい場合は、「1:1でLINE Notifyから通知を受け取る」を選択しましょう。
発行したトークンは後ほど使うので、忘れずに保管しておきましょう。
2. Google Apps Script(GAS)の設定
次に、Google Apps Script(GAS)の設定をします。
Google Apps Script(GAS)とは、Googleが開発・提供しているプログラミング言語です。
GASを使うことで、Google カレンダーやGmailなどのGoogleのサービスと、LINEなどの他のサービスを連携させることができます。
今回は、このGASを使って、GmailとLINEを連携させます。
まずは、GASのページにアクセスして、Start Scriptingをクリックします。
※LINEに転送したいGmailのアカウントでログインしてください
そして、「新しいプロジェクト」をクリックしてください。
次に、以下のコードを貼り付けます。
function checkEmailAndNotifyLine() { // 監視するメールの送信元アドレスを指定 const targetEmailAddress = 'hoge@piyo.com'; // 1時間前のエポック時間を計算 const elapsedHours = 1; const elapsedHoursEpoch = Math.floor((Date.now() / 1000) - elapsedHours * 60 * 60); // 検索クエリを作成 const query = `from:${targetEmailAddress} after:${elapsedHoursEpoch}`; // Gmailの受信トレイからメールを検索 const threads = GmailApp.search(query); // メールをチェックして通知 threads.forEach(thread => { thread.getMessages().forEach(message => { const sender = message.getFrom(); if (sender.includes(targetEmailAddress)) { const messageBody = message.getPlainBody(); sendLineNotification(`メールを受信しました!\n\nメールの内容:\n\n${messageBody}`); } }); }); } function sendLineNotification(message) { // トークンを設定 const lineNotifyToken = 'LINE_NOTIFY_TOKEN'; const url = 'https://notify-api.line.me/api/notify'; const headers = { 'Authorization': 'Bearer ' + lineNotifyToken }; const options = { 'method': 'post', 'headers': headers, 'payload': { 'message': message } }; UrlFetchApp.fetch(url, options); }
targetEmailAddressには監視したい送信元のメールアドレスを、lineNotifyTokenには先ほど発行したトークンを設定してください。
また、elapsedHoursの値も、ここでは1を設定していますが、任意の値を指定してください。
以下、コードの説明です。
checkEmailAndNotifyLine
関数- 指定したメールアドレス(
targetEmailAddress
)からの新しいメールを検索するための関数。 elapsedHours
という変数で、過去何時間分のメールを検索するかを指定しています。この例では1時間前までのメールを検索対象としています。elapsedHoursEpoch
変数を使用して、現在のエポック時間から指定した時間を引いた時間を計算し、過去の時間を表すエポック時間を生成します。query
変数で、Gmailの検索クエリを作成します。これには、指定された送信元メールアドレスと過去の時間制限が含まれます。
- 指定したメールアドレス(
- Gmailの受信トレイからメールを検索
GmailApp.search(query)
を使用して、指定された検索クエリに一致するメールスレッドを検索します。- 検索結果は
threads
変数に格納されます。
- メールをチェックして通知
threads
をループ処理し、各スレッドのメッセージを取得します。- メッセージの送信元を取得し、指定したメールアドレスと一致するかどうかを確認します。
- 一致する場合、メッセージの本文を取得し、
sendLineNotification
関数を呼び出してLINE通知を送信します。
sendLineNotification
関数- LINEに通知を送信するための関数。
lineNotifyToken
変数にLINE Notifyのトークンを設定します。- LINE Notify APIを呼び出すためのURLとヘッダーを設定し、
message
パラメータに通知メッセージを設定します。 UrlFetchApp.fetch
を使用して、設定されたURLとオプションを使用して通知を送信します。
ここまでできたら、プロジェクト名を任意の値に書き換えた上で、保存します。
checkEmailAndNotifyLineを選択した上で「実行」をクリックします。
権限を確認します。
詳細をクリックします。
ページ移動して、許可します。
これで、LINEにGmailに届いたメールが転送されていれば、とりあえずGASのコードの設定は完了です。
3. トリガーの設定
ここまでで、手動で条件に指定したメールを転送することはできるようになりました。
次に、このメールの転送を自動で行うための設定をします。
まずは、左のメニューからトリガーを選択してください。
右下の「トリガーを追加」をクリックします。
以下の条件で作成してください。時間の間隔は任意の値を設定してください。
以上で設定完了です。
あとは1時間ごとにGASの関数を実行して、条件と一致するメールがあればLINEに通知してくれるでしょう。
【簡単】GmailのメールをLINEに転送する方法【GAS】おわりに
今回は、GASを使ってGmailのメールをLINEに転送する方法を解説しました。
以下の3ステップを踏むことで、特定のメールを簡単にLINEに転送することができます。
- LINE Notifyでアクセストークンを発行
- Google Apps Script(GAS)の設定
- トリガーの設定
今回は以上となります。
最後まで読んでいただきありがとうございました。
この記事が、GmailのメールをLINEに転送する上で少しでも参考になっていれば幸いです。