この記事ではこういった疑問にお答えします。
少しでも疑問を解決する手助けとなれば幸いです。
【簡単】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に転送する上で少しでも参考になっていれば幸いです。
 
	

 
	
 
	
 
	
 
	
 
	
 
	
 
	
 
	
 
	
