AEM Developerの皆様、お元気ですか?
大和の蒲生です
ワークフロー開発などを行った際に、AEMからのワークフロー完了のメール通知確認をしたいときってありますよね。 そんなとき皆さんはどんなSMTP(送信メール)サーバーを利用して挙動確認をしてますか?
私が思う簡単な方法の一つとして、Gmailアカウントを利用する方法があります。
今回は、GmailアカウントをSMTP(送信メール)サーバーとして利用した、ワークフローの完了を通知する方法についてまとめます! 1
ワークフロー完了メール通知設定とTransient ワークフローの完了メール通知設定
ワークフローの完了通知
ワークフローの完了または異常終了の際、ワークフローの開始者に通知メールが配信されるように、デフォルトで設定されています。2
この挙動を変更するには、Day CQ Worklow Notification Serviceの設定を変更します。
https://[ホスト名]:[ポート名]/system/console/configMgrでDay CQ Worklow Notification Serviceを検索し、
Edit
をクリックすると設定画面(下図)が開きます。
Notify on Complete
・・・完了時に通知Notify on Abort
・・・・異常終了時に通知
それぞれのチェックを外すことで、ワークフローの完了時や異常終了時の通知メールが配信されなくなります。
Transient ワークフローの完了通知設定
Transient ワークフローの完了通知設定はSendTransientWorkflowCompletedEmailProcessの設定を変更します。
アセットをアップロードするとDAM Update Assetワークフローが起動しますが、大量のアセットをアップロードした時に、アセット毎に完了のメール通知が来たら、受信ボックスが大変なことになりますよね。
そんな時はSendTransientWorkflowCompletedEmailProcessの設定を変更をすることで、Transientワークフローの完了通知メールを送信しないようにすることが可能です。
https://[ホスト名]:[ポート名]/system/console/configMgrでSendTransientWorkflowCompletedEmailProcessを検索し、Edit
をクリックすると下記の設定画面(下図)が開きます。
上記のNotify on Complete
(完了時に通知する)のチェックを外すと、Transientワークフロー完了時に通知メールが送られない設定になります!
Transientワークフローとは?
Transientワークフローとは、ワークフローのruntimeのデータ情報をJCR内に保持せず実行するワークフローです。 この設定は、ワークフローモデルのプロパティ設定で変更できます。
runtimeデータ(/var/workflow/instances)が保存されないため、ワークフローインスタンスやアーカイブにも表示されません。
ペイロードとプロセスロジックはJCRに保持されますが、ワークフローステップの情報は保持されません。3 レポジトリの肥大化を防げるため、Transientを設定することで、データ取り込み量が多いワークフローの最適化が可能です。4
前述のDAM Upload Asset(DAMアセットの更新)ワークフローはOOTBでは、Transientワークフローの設定になっています。
Gmailアカウントを利用する場合のDay CQ Mail Serviceの設定方法
Day CQ Mail Service
- Day CQ Mail ServiceはAEMのデフォルトのメールサービスです。
- OSGiで利用するSMTP(送信メール)サーバーを設定します。
https://[ホスト名]:[ポート名]/system/console/configMgrでDay CQ Mail Serviceを検索し、Edit
をクリックすると下記項目を設定する画面が開きます。
フィールド名 | フィールドの説明と設定値 |
---|---|
SMTP server host name | (必須)SMTP(送信メール)サーバーのホスト名を設定します。今回はGmailを利用するので、smtp.gmail.com と入力 |
SMTP server port | (必須) SMTP(送信メール)サーバーのポートを設定します。ポートは25以上 |
SMTP user | (必須) SMTP(送信メール)サーバーのユーザー名。Gmailのメールアドレスを入力します。 |
SMTP password | (必須) SMTP(送信メール)サーバーのパスワード。Gmailのパスワードを入力します。 |
SMTP user | (必須) SMTP(送信メール)サーバーのユーザー名。Gmailのメールアドレスを入力します。 |
"From" address | 送信元メールアドレス。Gmailのメールアドレスを入力します。 |
SMTP use SSL | チェックすると、SSLを利用したメール送信が可能になります。SSL設定時のポート番号は465にしておく必要があります。 |
SMTP use StartTLS | TLS通信を利用する。今回は利用しないのでチェックなし。 |
Debug email | チェックすると、SMTP(送信メール)サーバーとの通信ログが記録されます。1 |
設定後はこんな感じです
Gmailの安全性の低いアプリのアクセスの有効化
Gmailアカウントを利用する場合、こちらにアクセスして、セキュリティ設定で「安全性の低いアプリのアクセス」を許可する必要があります。
注意点ですが、上記の設定をすると、アカウントのセキュリティが下がるので普段利用しているGmailアカウントではなく、ダミーのアカウント利用をおススメします。
AEMからワークフロー完了の通知メールが届くか確認
上記の設定で、SMTP(送信メール)サーバーの設定が完了したので、OOTBのワークフローを実行して実際に通知メールが来るか確認してみましょう!
今回はDAM Upload Asset(DAMアセットの更新)ワークフローを実行して、通知が来るか確認したいと思います。
確認ステップ
プロファイルにメールアドレス設定済みのユーザーでAEMにログイン。
画像をアップロード
登録したメールアドレスにメールが配信されたことを確認。
届いたメールは、、、下記です
通知メールのテンプレート
デフォルトの通知メールテンプレートは下記に配置されています(AEM6.5)。
/libs/settings/dam/workflow/notification/email/transientworkflowcompleted/en.txt
subject: Transient Workflow Completed Notification <div style="font-family:Calibri;font-size:11.0pt"> ------------------------------------------------------------------------------------- Time: ${Time} Step: ${Step} User: ${User} Workflow: ${Workflow} ------------------------------------------------------------------------------------- Content: ${host.prefix}${Content} -------------------------------------------------------------------------------------<br/> This is an automatically generated message. Please do not reply. </div>
はい、以上がGmailアカウントをSMTP(送信メール)サーバーとして利用したワークフローの完了を通知する方法のまとめになります!
最後まで読んでいただきありがとうございました!
À bientôt