はじめに
Garoonのメール送信前イベントを使って、メール送信前に注意喚起を行うカスタマイズを紹介します。
メールを送信する前のイベント は、メール送信画面の[送信する]ボタンをクリックした後に発行するイベントです。
このイベントを利用すると、メール送信前に、メールの内容に応じた注意喚起ができます。
なお、クラウド版Garoonでは「
メール誤送信警告プラグイン
」が提供されています。
機能の詳細は
プラグインの紹介ページ
を確認してください。
注意事項
- 次の画面ではカスタマイズを利用できません。
- モバイル表示
- モバイル用アプリ(KUNAIおよびGaroonモバイル)
- メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発行するイベントです。
メールの一般設定(個人設定) で「送信前の確認」を有効にしている場合、[送信する]ボタンクリック後に確認画面に遷移します。
また、確認画面での[送信する]ボタンをクリックしたとき、このイベントは発行しません。
メール送信前イベントとは
次のコードは、[送信する]ボタンをクリックしたとき、標題が空の場合はエラーダイアログを表示し、メール送信を中止するカスタマイズ例です。
|
|
- メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発行するイベントです。
- 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で動作を確認しています。