メール通知の設定 configuring-email-notification
AEM は、次のユーザーに対してメール通知を送信します。
前提条件:
- ユーザーのプロファイルで有効なメールアドレスが定義されている必要があります。
- Day CQ Mail Service が適切に設定されている必要があります。
ユーザーへの通知は、各自がプロファイルで定義している言語のメールで送信されます。言語ごとに、独自のカスタマイズ可能なテンプレートがあります。新しい言語用には新しいメールテンプレートを追加できます。
メールサービスの設定 configuring-the-mail-service
AEM でメールを送信できるようにするには、Day CQ Mail Service を適切に設定する必要があります。設定は web コンソールで確認できます。AEM を操作しているときは、このようなサービスの設定を管理する方法がいくつかあります。詳細および推奨事項については、OSGi の設定を参照してください。
以下の制約が適用されます。
-
SMTP サーバーポート は 25 以上にする必要があります。
-
SMTP サーバーホスト名 は空白にできません。
-
「送信元」アドレス は空白にしてはなりません。
Day CQ Mail Service の問題をデバッグしやすくするために、サービスのログを監視できます。
com.day.cq.mailer.DefaultMailService
設定は、Web コンソールに次のように表示されます。
メール通知チャネルの設定 configuring-the-email-notification-channel
ページまたはフォーラムのイベント通知を購読するとき、送信元のメールアドレスは、デフォルトで no-reply@acme.com
に設定されます。この値は、Web コンソールで Notification Email Channel サービスを設定することで変更できます。
送信元のメールアドレスを設定するには、sling:OsgiConfig
ノードをリポジトリに追加します。以下の手順で、CRXDE Lite を使用してノードを直接追加します。
-
CRXDE Lite で、
config
という名前のノードを、アプリケーションフォルダーの下に追加します。 -
config フォルダーに、以下の名前のノードを追加します。
com.day.cq.wcm.notification.email.impl.EmailChannel
リソースのタイプは次のとおりとします。sling:OsgiConfig
-
String
プロパティをemail.from
という名前のノードに追加します。値には、使用するメールアドレスを指定します。 -
「すべて保存」をクリックします。
次の手順を実行して、コンテンツパッケージのソースフォルダーでノードを定義します。
-
jcr_root/apps/*app_name*/config folder
に、com.day.cq.wcm.notification.email.impl.EmailChannel.xml
という名前のファイルを作成します。 -
このノードを表現する次の XML を追加します。
<?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:sling="https://sling.apache.org/jcr/sling/1.0" xmlns:jcr="https://www.jcp.org/jcr/1.0" jcr:primaryType="sling:OsgiConfig" email.from="name@server.com"/>
-
email.from
属性の値(name@server.com
)を、実際のメールアドレスに置き換えます。 -
ファイルを保存します。
ワークフローメール通知サービスの設定 configuring-the-workflow-email-notification-service
ワークフローのメール通知を受け取ると、送信元メールアドレスおよびホスト URL プレフィックスの両方がデフォルト値に設定されます。Web コンソールで Day CQ Workflow Email Notification Service を設定して、これらの値を変更できます。その場合は、リポジトリ内の変更内容を保存することをお勧めします。
デフォルト設定は、web コンソールに次のように表示されます。
ページ通知用のメールテンプレート email-templates-for-page-notification
ページ通知用のメールテンプレートは、次の場所にあります。
/libs/settings/notification-templates/com.day.cq.wcm.core.page
デフォルトの英語のテンプレート(en.txt
)は次のように定義されています。
subject=[CQ Page Event Notification]: Page Event
header=-------------------------------------------------------------------------------------\n \
Time: ${time}\n \
User: ${userFullName} (${userId})\n \
-------------------------------------------------------------------------------------\n\n
message=The following pages were affected by the event: \n \
\n \
${modifications} \n \
\n\n
footer=\n \
-------------------------------------------------------------------------------------\n \
This is an automatically generated message. Please do not reply.
ページ通知用のメールテンプレートのカスタマイズ customizing-email-templates-for-page-notification
ページ通知用の英語のメールテンプレートをカスタマイズするには:
-
CRXDE で、次のファイルを開きます。
/libs/settings/notification-templates/com.day.cq.wcm.core.page/en.txt
-
必要に応じてファイルを変更します。
-
変更内容を保存します。
テンプレートは、次の形式にする必要があります。
subject=<text_1>
header=<text_2>
message=<text_3>
footer=<text_4>
<text_x> には、静的なテキストと動的な文字列変数を混在させることができます。ページ通知用のメールテンプレート内では次の変数を使用できます。
-
${time}
、イベントの日時。 -
${userFullName}
、イベントを実行したユーザーのフルネーム。 -
${userId}
、イベントを実行したユーザーの ID。 -
${modifications}
、ページイベントのタイプとページパスを次の形式で表します。<page event type> => <page path>
次に例を示します。
PageModified => /content/geometrixx/ja/products
ワークフロー通知用のメールテンプレート email-templates-for-workflow-notification
ワークフロー通知用のメールテンプレート(英語)は、次の場所にあります。
/libs/settings/workflow/notification/email/default/en.txt
これは次のように定義されます。
subject=Workflow notification: ${event.EventType}
header=-------------------------------------------------------------------------------------\n \
Time: ${event.TimeStamp}\n \
Step: ${item.node.title}\n \
User: ${participant.name} (${participant.id})\n \
Workflow: ${model.title}\n \
-------------------------------------------------------------------------------------\n\n
message=Content: ${host.prefix}${payload.path.open}\n
footer=\n \
-------------------------------------------------------------------------------------\n \
View the overview in your ${host.prefix}/aem/inbox\n \
-------------------------------------------------------------------------------------\n \
This is an automatically generated message. Please do not reply.
ワークフロー通知用のメールテンプレートのカスタマイズ customizing-email-templates-for-workflow-notification
ワークフローイベント通知用の英語のメールテンプレートをカスタマイズするには:
-
CRXDE で、次のファイルを開きます。
/libs/settings/workflow/notification/email/default/en.txt
-
必要に応じてファイルを変更します。
-
変更内容を保存します。
テンプレートは、次の形式にする必要があります。
subject=<text_1>
header=<text_2>
message=<text_3>
footer=<text_4>
<text_x>
には、静的なテキストと動的な文字列変数を混在させることができます。<text_x>
項目の各行の末尾には、最後のインスタンスを除き、バックスラッシュ(\
)を付加する必要があります。バックスラッシュがないと、<text_x>
文字列変数の終了と見なされます。メソッド ${payload.path.open}
を使用すると、作業項目のペイロードのパスが表示されます。例えば、Sites のページの場合、payload.path.open
は /bin/wcmcommand?cmd=open&path=…
と同じようなものです。これにサーバー名が抜けているのは、テンプレートによってプレフィックスとして ${host.prefix}
が付加されるためです。
メールテンプレート内では以下の変数を使用できます。
-
${event.EventType}
、イベントのタイプ。 -
${event.TimeStamp}
、イベントの日時。 -
${event.User}
、イベントをトリガーしたユーザー。 -
${initiator.home}
、イニシエーターノードのパス。 -
${initiator.name}
、イニシエーター名。 -
${initiator.email}
、イニシエーターのメールアドレス。 -
${item.id}
、作業項目の ID。 -
${item.node.id}
、この作業項目に関連付けられているワークフローモデル内のノードの ID。 -
${item.node.title}
、作業項目のタイトル -
${participant.email}
、参加者のメールアドレス -
${participant.name}
、参加者の名前。 -
${participant.familyName}
、参加者の姓 -
${participant.id}
、参加者の ID -
${participant.language}
、参加者の言語 -
${instance.id}
、ワークフローの ID -
${instance.state}
、ワークフローの状態 -
${model.title}
、ワークフローモデルのタイトル -
${model.id}
、ワークフローモデルの ID -
${model.version}
、ワークフローモデルのバージョン -
${payload.data}
、ペイロード -
${payload.type}
、ペイロードのタイプ -
${payload.path}
、ペイロードのパス -
${host.prefix}
、ホストのプレフィックス(例:http://localhost:4502
)
新しい言語用のメールテンプレートの追加 adding-an-email-template-for-a-new-language
新しい言語用のテンプレートを追加するには、次の手順に従います。
-
CRXDE で、ファイル
<language-code>.txt
を以下に追加します。/libs/settings/notification-templates/com.day.cq.wcm.core.page
:ページ通知用/libs/settings/workflow/notification/email/default
:ワークフロー通知用
-
言語に合わせてファイルを調整します。
-
変更内容を保存します。
<language-code>
は、AEM で認識できる小文字 2 文字の言語コードにする必要があります。言語コードについては、AEM は ISO-639-1 に依存しています。AEM Assets メール通知の設定 assetsconfig
AEM Assets のコレクションが共有されている場合も共有されていない場合も、ユーザーは AEM からメール通知を受信できます。メール通知を設定するには、次の手順に従います。
- 前述のメールサービスの設定の説明に従って、メールサービスを設定します。
- AEM に管理者としてログインします。ツール/操作/Web コンソール をクリックして、Web コンソール設定を開きます。
- Day CQ DAM リソースコレクションサーブレット を編集します。「メールを送信」を選択します。「保存」をクリックします。
OAuth の設定 setting-up-oauth
AEM は、組織が安全なメール要件に準拠できるように、Oauth2 の統合メーラーサービスをサポートしています。
以下に示すように、複数のメールプロバイダーに対して OAuth を設定できます。
Gmail gmail
-
https://console.developers.google.com/projectcreate
でプロジェクトを作成 -
プロジェクトを選択し、API とサービス/ダッシュボード - 資格情報 に移動します。
-
必要に応じて OAuth 同意画面を設定する
-
次の更新画面で、これらの 2 つの範囲を追加します。
https://mail.google.com/
https://www.googleapis.com//auth/gmail.send
-
範囲を追加したら、左側のメニューで 資格情報 に戻り、 資格情報を作成/OAuth クライアント ID/デスクトップアプリ に移動します。
-
新しいウィンドウが開き、クライアント ID とクライアント秘密鍵が表示されます。
-
これらの資格情報を保存します。
AEM 側の設定
まず、メールサービスを設定します。
-
http://serveraddress:serverport/system/console/configMgr
に移動して、AEM web コンソールを開きます -
Day CQ Mail Service を探して、クリックします。
-
次の設定を追加します。
- SMTP サーバーのホスト名:
smtp.gmail.com
- SMTP サーバーポート:
25
または587
(要件に応じて) - 「SMPT で StarTLS を使用」および「SMTP には StarTLS が必要」のチェックボックスをオンにします。
- OAuth フロー をチェックし、「保存」をクリックします。
- SMTP サーバーのホスト名:
次に、以下の手順に従って、SMTP OAuth プロバイダーを設定します。
/conf/global/settings/mailer/oauth
に保存されているアクセストークンが無効になり、SMTP サーバーへの OAuth2 接続が失敗します。-
http://serveraddress:serverport/system/console/configMgr
に移動して、AEM web コンソールを開きます -
CQ Mailer SMTP OAuth2 Provider を探して、クリックします。
-
必要な情報を以下のとおり入力します。
- 認証 URL:
https://accounts.google.com/o/oauth2/auth
- トークン URL:
https://accounts.google.com/o/oauth2/token
- 範囲:
https://www.googleapis.com/auth/gmail.send
およびhttps://mail.google.com/
。複数の範囲を追加するには、設定された各範囲の右側にある「+」ボタンをクリックします。 - クライアント ID とクライアント秘密鍵:上記の段落で取得した値を使用して、これらのフィールドを設定します。
- 更新トークン URL:
https://accounts.google.com/o/oauth2/token
- 更新トークンの有効期限:なし
- 認証 URL:
-
「保存」をクリックします。
設定が完了すると、設定は次のようになります。
次に、OAuth コンポーネントをアクティベートします。手順は次のとおりです。
-
URL:
http://serveraddress:serverport/system/console/components
にアクセスして、コンポーネントコンソールに移動します。 -
以下のコンポーネントを探します
com.day.cq.mailer.oauth.servlets.handler.OAuthCodeGenerateServlet
com.day.cq.mailer.oauth.servlets.handler.OAuthCodeAccessTokenGenerator
-
コンポーネントの左側にある「再生」アイコンを押します。
最後に、以下により設定を確認します。
- 公開インスタンスのアドレスに移動し、管理者としてログインします。
- ブラウザーで新しいタブを開き、
http://serveraddress:serverport/services/mailer/oauth2/authorize
に移動します。これにより、ご利用の SMTP プロバイダー(この場合は Gmail)のページにリダイレクトされます。 - ログインして、必要な権限を与えることに同意する
- 同意すると、トークンがリポジトリに格納されます。公開インスタンス:
http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth
でこの URL に直接アクセスすると、accessToken
でトークンにアクセスできます。 - 公開インスタンスごとに上記の手順を繰り返します。
Microsoft Outlook microsoft-outlook
-
https://portal.azure.com/に移動し、ログインします。
-
検索バーで Azure Active Directory を検索し、結果をクリックします。または、https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview を直接参照することもできます。
-
アプリの登録/新しい登録 をクリックします。
-
必要に応じて情報を入力し、「登録」をクリックします。
-
新しく作成されたアプリに移動し、API 権限 を選択します。
-
権限を追加/グラフ権限/委任権限 に移動します。
-
アプリに対して以下の権限を選択し、「権限を追加」をクリックします。
SMTP.Send
Mail.Read
Mail.Send
openid
offline_access
-
認証/プラットフォームの追加/web に移動し、「リダイレクト URL」セクションで、OAuth コードをリダイレクトする URL を次のように追加してから「設定」を押します。
http://localhost:4503/services/mailer/oauth2/token
-
公開インスタンスごとに上記の手順を繰り返します。
-
要件に応じて設定を指定します
-
次に、証明書とシークレット に移動し、「新しいクライアントシークレット」をクリックし、画面上の手順に従ってシークレットを作成します。このシークレットは後で使用するため、必ずメモしてください
-
左側のウィンドウで「概要」を押し、後で使用するために、「アプリケーション(クライアント)ID」および「ディレクトリ(テナント)ID」の値をコピーします。
まとめると、以下の情報を使用して、AEM 側の Mailer サービスの Oauth2 を設定する必要があります。
- 認証 URLはテナント ID を使用して構築されます。次の形式になります。
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
- トークン URL はテナント ID を使用して構築されます。次の形式になります。
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
- 更新 URL はテナント ID を使用して構築されます。次の形式になります。
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
- クライアント ID
- クライアント秘密鍵
AEM 側の設定
次に、OAuth2 の設定を AEM と統合します。
/conf/global/settings/mailer/oauth
に保存されているアクセストークンが無効になり、SMTP サーバーへの OAuth2 接続が失敗します。-
http://serveraddress:serverport/system/console/configMgr
をブラウジングすることで、ローカルインスタンスの web コンソールに移動します。 -
Day CQ Mail Service を探してクリックします。
-
次の設定を追加します。
- SMTP サーバーのホスト名:
smtp.office365.com
- SMTP ユーザー:メールフォーマットのユーザ名
- 「From」アドレス:メーラーが送信するメッセージの「From」フィールドで使用するメールアドレス
- SMTP サーバーポート:要件に応じて
25
または587
- 「SMPT は StarTLS を使用」と「SMTP には StarTLS が必要」のチェックボックスをオンにします。
- OAuth フロー をチェックし、「保存」をクリックします。
- SMTP サーバーのホスト名:
-
CQ Mailer SMTP OAuth2 Provider を探して、クリックします。
-
必要な情報を以下のとおり入力します。
-
「認証 URL」、「トークン URL」、「更新トークン URL」を、この手順の最後に説明した方法で作成し、入力します。
-
クライアント ID とクライアント秘密鍵:これらのフィールドに、前述のように取得した値を設定します。
-
次のスコープを設定に追加します。
- openid
- offline_access
https://outlook.office365.com/Mail.Send
https://outlook.office365.com/Mail.Read
https://outlook.office365.com/SMTP.Send
-
AuthCode リダイレクト URL:
http://localhost:4503/services/mailer/oauth2/token
-
更新トークン URL:これは、上記のトークン URL と同じ値である必要があります
-
-
「保存」をクリックします。
設定が完了すると、設定は次のようになります。
次に、OAuth コンポーネントをアクティベートします。手順は次のとおりです。
-
URL:
http://serveraddress:serverport/system/console/components
にアクセスして、コンポーネントコンソールに移動します。 -
以下のコンポーネントを探します
com.day.cq.mailer.oauth.servlets.handler.OAuthCodeGenerateServlet
com.day.cq.mailer.oauth.servlets.handler.OAuthCodeAccessTokenGenerator
-
コンポーネントの左側にある「再生」アイコンを押します。
最後に、以下により設定を確認します。
- 公開インスタンスのアドレスに移動し、管理者としてログインします。
- ブラウザーで新しいタブを開き、
http://serveraddress:serverport/services/mailer/oauth2/authorize
に移動します。これにより、ご利用の SMTP プロバイダー(この場合は Outlook)のページにリダイレクトされます。 - ログインして、必要な権限を与えることに同意する
- 同意すると、トークンがリポジトリに格納されます。ご利用の公開インスタンスで次の URL に直接アクセスすることで、
accessToken
のトークンにアクセスできます。http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth