メール送信前イベントを使って、送信前に注意喚起するカスタマイズをしよう
はじめに
Garoon のメール送信前イベントを使って、メール送信前に注意喚起を行うカスタマイズを紹介します。
メールを送信する前のイベント は、メール送信画面の[送信する]ボタンをクリックした後に発行するイベントです。
このイベントを利用すると、メール送信前に、メールの内容に応じた注意喚起ができます。
なお、クラウド版 Garoon では「
メール誤送信警告プラグイン
」が提供されています。
機能の詳細は
プラグインの紹介ページ
を確認してください。
注意事項
- メール送信前イベントは PC 表示時のみ対応しています。モバイル表示または KUNAI では利用できません。
- メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発行するイベントです。
メールの一般設定(個人設定)で「送信前の確認」を有効にしている場合、[送信する]ボタンクリック後に確認画面に遷移します。
また、確認画面での[送信する]ボタンをクリックしたとき、このイベントは発行しません。
メール送信前イベントとは
次のコードは、[送信する]ボタンをクリックしたとき、標題が空の場合はエラーダイアログを表示し、メール送信を中止するカスタマイズ例です。
|
|
- メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発行するイベントです。
- event.mail プロパティで、メール送信画面に表示されるメールの情報を取得できます(参照: メールオブジェクト)
- event.error に値を設定して return event すると、エラーダイアログを表示し、メール送信を中止します(次の画面に遷移しません)
Garoon のエラーダイアログ
カスタマイズサンプル
メールの内容を判定し、注意喚起をしたい場合に確認ダイアログを表示してカスタマイズサンプルです。
カスタマイズファイルの適用方法は、後述の
Garoon の設定 を参照してください。
ベースとなるコード
以下のコードは、カスタマイズのベースとなるコードです。
- 注意喚起こする条件判定する処理は、shouldWarning 関数(20〜22行目)に実装します。
- shouldWarning 関数の引数として メールオブジェクト を渡します。
- 確認ダイアログを表示させたい場合は true を返します。
- 11・12 行目では、確認ダイアログや Garoon のエラーダイアログに表示するメッセージを設定します。表示させたいメッセージに応じて変更します。
|
|
この記事では、shouldWarning 関数の実装例として、次の内容を判定し注意喚起こするサンプルを紹介します。
宛先に社外(自社ドメイン以外)のメールアドレスが含まれているか
宛先に社外(自社ドメイン以外)のメールアドレスが含まれている場合、確認ダイアログを表示して送信者に注意喚起こするカスタマイズです。
確認ダイアログの[キャンセル]ボタンをクリックすると、メールの送信を中止します。
ベースとなるコード の確認ダイアログや Garoon のエラーダイアログに表示するメッセージを設定する箇所(11・12 行目)を次に置き換えます。
|
|
shouldWarning で呼び出す関数(
ベースとなるコード の 16〜22 行目)は、次の内容に置き換えます。
このとき、以下のコード2行目の OWN_DOMAIN の値を自社のメールアドレスのドメイン(@以降)に置き換えてください。
|
|
コードの解説
- 宛先情報は、メールオブジェクトの 宛先(To)に関するプロパティ・ 宛先(Cc)に関するプロパティ・ 宛先(Bcc)に関するプロパティ に格納されています。
- hasOtherDomain 関数で、shouldWarning 関数から
宛先(To)に関するプロパティ・
宛先(Cc)に関するプロパティ・
宛先(Bcc)に関するプロパティ の値を受け取ります(37 行目)
- この値はオブジェクトの配列になっているので、forEach で 1 件ずつの宛先情報として取り出して処理します(21〜26 行目)
- 取り出した宛先情報の mailAddress プロパティにメールアドレスが格納されているので、extractDomain 関数に渡します。extractDomain 関数はドメイン部分だけを抽出する関数です。
- 抽出したサブドメインが自社のドメイン(OWN_DOMAIN)と一致していなければ、他社のドメインとして isOtherDomain 関数の戻り値を true にします(23〜25 行目)
- shouldWarning 関数は、isOtherDomain 関数の戻り値がひとつでも true だったら確認ダイアログを表示するとして、ベースとなるコードに true を返します。
一定サイズの添付ファイルが含まれているか
一定サイズ以上の添付ファイルが添付されている場合、確認ダイアログを表示して送信者に注意喚起こするカスタマイズです。
確認ダイアログの[キャンセル]ボタンをクリックすると、メールの送信を中止します。
ベースとなるコード の確認ダイアログや Garoon のエラーダイアログに表示するメッセージを設定する箇所(11・12 行目)を次に置き換えます。
このとき、以下コード2行目のOVER_SIZEの値を任意のファイルサイズの上限(MBで指定)に書き換えてください。
|
|
shouldWarning で呼び出す関数( ベースとなるコード の 16〜22 行目)は、次の内容に置き換えます。
|
|
コードの解説
- 添付ファイル情報は、メールオブジェクトの 添付ファイルに関するプロパティ に格納されています。
- hasOverSizeAttachment 関数で、shouldWarning 関数から
添付ファイルに関するプロパティ の値を受け取ります(23 行目)
- この値はオブジェクトの配列になっているので、forEach で 1 件ずつの添付ファイル情報として取り出して処理します(8〜12 行目)
- 取り出した添付ファイル情報の size プロパティにファイルサイズが格納されているので、サイズ上限を超えているかをチェックします。
ファイル上限を超えていたら、hasOverSizeAttachment 関数の戻り値を true にします。
- shouldWarning 関数は、hasOverSizeAttachment 関数の戻り値が true だったら確認ダイアログを表示するとして、ベースとなるコードに true を返します。
Garoon の設定
カスタマイズグループを作成し、スケジュールのカスタマイズファイルを適用します。
- Garoon メニュー右の歯車アイコンをクリックし、[Garoon システム管理]を選択します。
- [各アプリケーションの管理]タブを選択し、[メール]を選択します。
- [JavaScript/CSS によるカスタマイズ]を選択します。
- [カスタマイズグループを追加する]をクリックします。
- 次の内容を入力します。入力が終わったら、[追加する]ボタンをクリックします。
項目名 設定値 カスタマイズ 「適用する」を選択します。 カスタマイズグループ名 任意の値を入力します。 適用対象 カスタマイズを適用するユーザー・グループを選択します。 JavaScript カスタマイズ 適用するカスタマイズファイル(JavaScript)を指定します。 CSS カスタマイズ なし
おわりに
メール送信前イベントを利用すると社内のメール送信ルールに沿っているかをチェックできるカスタマイズを実装できるので、メールの送信者に注意喚起ができます。
また、この記事ではブラウザー標準のダイアログを利用しましたが、
Cybozu CDN で配信している
SweetAlert
や
SweetAlert2
を利用するとスタイリッシュなダイアログを表示できます。
利用している Garoon API
この記事の内容は、2020 年 3 月版 Garoon で動作を確認しています。