GASでエラー通知メールを自動送信する方法

ああ、GASでエラーが発生したときに、どうすれば通知メールを自動で送信できるんだろう?少し困っていて…。
猫男
猫男
catman
catman
心配いらない、catmanがエラー通知メールの自動送信方法を教えてやろう!

GASでエラーをキャッチする方法

GASでエラーが起きたときに、それを検知して適切にハンドリングすることが大切さ。

try-catch構文を使う

プログラム内でエラーが発生する可能性のある箇所を監視して、エラーを捕まえる方法を見ていく。


function executeTask() {
  try {
    // ここにエラーが発生するかもしれない処理
    var result = riskyOperation();
    Logger.log(result);
  } catch (e) {
    Logger.log('エラーが発生しました: ' + e.message);
  }
}

この例では、try-catch構文でエラーを捕捉し、そのエラーメッセージをログに記録している。

GASでエラー通知メールを送信する方法

エラーが発生した際に、メールで知らせることが可能だ。

GmailApp.sendEmail()メソッドを使う

エラー情報をメール送信する部分を見ていこう。


function executeTaskWithNotification() {
  try {
    var result = riskyOperation();
    Logger.log(result);
  } catch (e) {
    Logger.log('エラーが発生しました: ' + e.message);
    sendErrorNotification(e.message);
  }
}

function sendErrorNotification(errorMsg) {
  var recipient = 'example@gmail.com';
  var subject = 'GASスクリプトでエラー発生';
  var body = '次のエラーが発生しました: ' + errorMsg;
  
  GmailApp.sendEmail(recipient, subject, body);
}

GmailApp.sendEmail()メソッドを活用し、エラー情報をメールで送信することで迅速に対応が進められる。

エラー通知メールの設定例

エラーの詳細を知るために、メールに付加する情報を充実させるのも一つの工夫だ。

エラー詳細の追加情報

日時や発生元などを追記すると、より役立つ情報となる。


function sendDetailedErrorNotification(errorMsg) {
  var recipient = 'example@gmail.com';
  var subject = 'GASスクリプト: エラー通知';
  var body = 'エラーが発生しました。\n' +
             'エラーメッセージ: ' + errorMsg + '\n' +
             '日時: ' + new Date() + '\n' +
             '発生スクリプト: ' + ScriptApp.getScriptId();

  GmailApp.sendEmail(recipient, subject, body);
}

このような詳細情報を追加することで、エラーの分析がよりしやすくなる。

練習問題

GASでのエラー通知に関するスクリプトを作成し、以下の要件を満たすようにしよう。

  1. try-catchを使用して、エラーメッセージをメールで送信する。
  2. メールには、エラーメッセージ、日時、スクリプトIDを含める。

 

解答・解説


function executeTaskExample() {
  try {
    // 仮の操作でエラーを試しに発生
    var result = undefinedVariable;
    Logger.log(result);
  } catch (e) {
    Logger.log('エラーが発生しました: ' + e.message);
    sendDetailedErrorNotification(e.message);
  }
}

function sendDetailedErrorNotification(errorMsg) {
  var recipient = 'example@gmail.com';
  var subject = 'GASスクリプトでのエラー通知';
  var body = 'エラーが発生しました。\n' +
             'エラーメッセージ: ' + errorMsg + '\n' +
             '日時: ' + new Date() + '\n' +
             '発生スクリプトID: ' + ScriptApp.getScriptId();
  
  GmailApp.sendEmail(recipient, subject, body);
}

このスクリプトはtry-catchでエラーをキャッチし、sendDetailedErrorNotification関数でメールを送信する。GmailAppは、メール送信用の便利なライブラリさ。

なるほど!これでエラーが発生してもすぐに対応できるね。さすがcatman!ありがとう!
猫男
猫男
catman
catman
その調子だ、どんどんスクリプトを書いて自分のものにしていこう!