cybozu developer network

カテゴリー内の他の記事

メール送信前イベントを使って、送信前に注意喚起するカスタマイズをしよう

Index

はじめに

Garoonのメール送信前イベントを使って、メール送信前に注意喚起を行うカスタマイズを紹介します。

メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発火するイベントです。

このイベントを利用すると、メール送信前に、メールの内容に応じた注意喚起ができます。

 

なお、クラウド版 Garoon では「メール誤送信警告プラグインが提供されています。
機能の詳細はプラグインの紹介ページをご確認ください。

 

注意事項

  • メール送信前イベントは PC 表示時のみ対応しています。モバイル表示またはKUNAIでは利用できません。
  • メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発火するイベントです。
    メールの一般設定(個人設定)で「送信前の確認」を有効にしている場合、[送信する]ボタンクリック後に確認画面に遷移します。
    また、確認画面での[送信する]ボタンをクリックしたとき、このイベントは発火しません。

メール送信前イベントとは

次のコードは、[送信する]ボタンをクリックしたとき、標題が空の場合はエラーダイアログを表示し、メール送信を中止するカスタマイズ例です。

  • メール送信前イベントは、メール送信画面の[送信する]ボタンをクリックした後に発火するイベントです。
  • event.mail プロパティで、メール送信画面に表示されるメールの情報を取得できます(参照:メールオブジェクト
  • event.error に値を設定して return event すると、エラーダイアログを表示し、メール送信を中止します(次の画面に遷移しません)。
    Garoon のエラーダイアログ
    エラーダイアログ

カスタマイズサンプル

メールの内容を判定し、注意喚起したい場合に確認ダイアログを表示してカスタマイズサンプルです。
カスタマイズファイルの適用方法は、後述の Garoon の設定をご参照ください。

ベースとなるコード

以下のコードは、カスタマイズのベースとなるコードです。

  • 注意喚起する条件判定を行う処理は、shouldWarning 関数(16〜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行目)は、次の内容に置き換えます。

コードの解説

  • 添付ファイル情報は、メールオブジェクトの attachments プロパティに格納されています。
  •  hasOverSizeAttachment 関数で、shouldWarning 関数から attachments プロパティの値を受け取ります(23行目)。
    • この値はオブジェクトの配列になっているので、forEach で1件ずつの添付ファイル情報として取り出して処理します(8〜12行目)。
    • 取り出した添付ファイル情報の size プロパティにファイルサイズが格納されているので、サイズ上限を超えているかをチェックします。
      ファイル上限を超えていたら、hasOverSizeAttachment 関数の返り値を true にします。
  • shouldWarning 関数は、hasOverSizeAttachment 関数の返り値が true だったら確認ダイアログを表示するとして、ベースとなるコードに true を返します。 

Garoon の設定

カスタマイズグループを作成し、スケジュールのカスタマイズファイルを適用します。

  1. Garoon メニュー右の歯車アイコンをクリックし、[Garoonシステム管理]を選択します。
  2. [各アプリケーションの管理]タブを選択し、[メール]を選択します。
  3. [JavaScript/CSSによるカスタマイズ]を選択します。
  4. [カスタマイズグループを追加する]をクリックします。
  5. 次の内容を入力します。入力が終わったら、[追加する]ボタンをクリックします。
    カスタマイズ設定画面
    項目名 設定値
    カスタマイズ 「適用する」を選択します。
    カスタマイズグループ名 任意の値を入力します。
    適用対象 カスタマイズを適用するユーザー・グループを選択します。
    JavaScript カスタマイズ 適用するカスタマイズファイル(JavaScript)を指定します。
    CSS カスタマイズ なし

おわりに

メール送信前イベントを利用すると社内のメール送信ルールに沿っているかをチェックできるカスタマイズを実装できるので、メールの送信者に注意喚起ができるようになります。

また、この記事ではブラウザ標準のダイアログを利用しましたが、Cybozu CDN で配信している SweetAlert や SweetAlert2 を利用するとスタイリッシュなダイアログを表示できます。

利用している Garoon API

このTipsは、2020年3月版 Garoon で確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。