Redmineのリマインダメールで期日間近・期日超過のチケットを通知する方法

本記事ではRedmineのリマインダメールについてご紹介します。

Redmineの「リマインダメール」とは

Redmineには、期日が迫っている、または期日を過ぎてしまったチケットの一覧を通知する「リマインダメール」を送信する機能があります。毎日決まった時間にリマインダメールが送信されるように設定しておけば、期日が近いチケットに気づきやすくなります。また、期日が過ぎたままチケットが放置されてしまうのを防ぐことも期待できます。

リマインダメールは、担当者が自分に設定されていて、期日が設定した日数以内のチケットを以下のように通知します。

Redmineで期日超過・期日間近のチケットをお知らせするリマインダメール

チケットのリンク(↑の画面ショットでは「機能 #78」等)をクリックすると、Redmineのチケットの詳細画面が表示されます。

リマインダメール送信のための設定

リマインダメールを送信するには、コマンドラインで
$ bundle exec rake redmine:send_reminders
を実行します。
rakeタスクのオプションを設定することで、期日の何日前から通知するかなどを設定できます。

利用可能なオプション:(Redmineガイドより引用。)

  • days: 期日の何日前から通知するか (デフォルト: 7)
  • tracker: 通知対象トラッカーのid (デフォルト: すべてのトラッカー)
  • project: 通知対象プロジェクトのidまたは識別子 (デフォルト: すべてのプロジェクト)
  • users: リマインダ送信対象のユーザーの、コンマ区切りのid番号
  • version: 通知対象の対象バージョン (デフォルト: 指定なし)

例えば以下の例では、期日まで3日以内か、期日を超過したチケットを担当しているユーザーにチケットの一覧を通知します。

$ bundle exec rake redmine:send_reminders days=3 RAILS_ENV=production

cronまたはタスクスケジューラによりコマンドを定期実行する設定

Linuxの場合はcron、Windowsの場合はタスクスケジューラを利用して、毎朝コマンドが定期実行されるように設定しておくと便利です。それぞれの設定方法の例をご紹介します。

Linuxの場合:cronによる定期実行

注意:
cronの設定方法は様々あり、Linuxのディストリビューションやバージョンによって異なります。今回は、Ubuntu 20.04.6 LTS・Redmine4.2.10で実施した方法をご紹介します。

1.PATHの確認

Redmineのルートディレクトリで、
$ echo $PATH
と入力し、表示された値をメモしておきます。
表示例:
PATHの確認

2.cronの設定

「/etc/cron.d」にcron記述用のファイルを作成し、以下のように記述します。
「PATH=」の箇所には「1.PATHの確認」で取得した環境変数を記述します。(環境変数を記述しない場合は、「bundle」及び、「rake」コマンドを絶対パスを指定して記述する必要があります。)「cd」の箇所では、Redmineのルートディレクトリに移動します。以下の例では、毎朝8:00にメールが送信されるように設定しています。

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
00 8 * * * root cd /var/lib/redmine ; bundle exec rake redmine:send_reminders RAILS_ENV=production

ファイルを保存すると設定が完了します。

 

Windowsの場合:タスクスケジューラによる定期実行

注意:
タスクスケジューラの設定方法や表示される画面は、Windowsのバージョン等により異なる場合があります。今回は、Windows 10 Pro・Redmine5.0.0で実施した方法をご紹介します。

事前準備:環境変数の設定とバッチファイルの用意

Windowsでbundleコマンドを認識できるように、環境変数を設定します。

1.「コントロールパネル」を開き、「システム」をクリックする

コントロールパネル

2.「システムの詳細設定」をクリックする

システムの詳細設定

3.「環境変数」をクリックする

システムの詳細設定の環境変数

 

4.「システム環境変数」の「Path」をダブルクリックする

「システム環境変数」の「Path」

5.「新規」をクリックして、Redmineの「ruby/bin」のディレクトリを追加する
※今回はBitnami Redmineを使用した環境で実施しており、以下のように追加しました。ご利用の環境に合わせて入力してください。

PATHにRedmineの「ruby/bin」のディレクトリを追加

6.開かれているダイアログをすべて「OK」をクリックして閉じる

7.コマンドが使えるようになったか確認する
コマンドプロンプトで「bundle」と入力し、以下のように、「Could not locate Gemfile」と表示されれば、コマンドが認識されています。

コマンドが使えるようになったか確認

8.コマンドを記述したバッチファイルを用意する
以下のコマンドを書いたファイルを用意し、「redmine-reminder.bat」のように名前を付けて、Redmineのルートディレクトリに配置します。

cd %~dp0
bundle exec rake redmine:send_reminders days=7 RAILS_ENV=production

※「days=」の箇所は、期日の何日前から通知するかを設定するオプションになります。任意の値を入れてください。

 

タスクスケジューラの設定

1.デスクトップ画面左下のWindowsアイコンを右クリックし、「コンピュータの管理」をクリックする

Windowsの「コンピュータの管理」

2.「タスクスケジューラ」>「タスクスケジューラライブラリ」を右クリックして「新しいフォルダー」をクリックし「Redmine」等と名前を付けたフォルダーを作成する

タスクスケジューラライブラリ

3.作成したフォルダーを選択し、「基本タスクの作成」をクリックする

基本タスクの作成

4.作成したバッチファイルのコマンドが毎日実行されるように設定する
タスクの名前、説明、トリガー、操作を設定します。トリガーは「毎日」、時間はメールを送信したい時間、操作は「プログラムの開始」にして、作成したバッチファイルを選択します。以下では、毎朝8:30に実行されるように設定しています。「完了」をクリックするとタスクの登録が完了します。

バッチファイルのコマンドが毎日実行されるように設定

Lychee Redmineでリマインダメールを送信するには

  • テクマトリックスRedmineクラウドサービスをご利用の場合
    • 期日7日前以内のチケットと期日を超過したチケットを毎朝8:00にメール通知するように予め設定しています。
  • オンプレミス版をご利用の場合
    • 上記の方法をご参考にご自身で設定を行ってください。

まとめ

Redmineのリマインダメールの送信方法をご紹介しました。リマインダメールを送信することで、期日超過のチケットや期日が近いチケットを担当者にお知らせし、対応の漏れを防ぐことができます。また、メールのリンクをクリックすると直接Redmineのチケットを閲覧できるため、毎朝Redmineを開くきっかけにもなります。運用に合わせて是非設定してみてください。