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

