AEM は、次のユーザーに対してメール通知を送信します。
変更やレプリケーションなどのページイベントを購読済みである。The 通知インボックス このようなイベントを購読する方法については、を参照してください。
フォーラムイベントを購読したことがある
ワークフローで手順を実行する必要がある。参加者ステップの節では、ワークフローでのメール通知のトリガー方法について説明します。
前提条件:
ユーザーへの通知は、各自がプロファイルで定義している言語のメールで送信されます。言語ごとに、独自のカスタマイズ可能なテンプレートがあります。新しい言語用には新しいメールテンプレートを追加できます。
AEM を操作しているときは、このようなサービスの設定を管理する方法がいくつかあります。詳細および推奨事項については、OSGi の設定を参照してください。
AEM でメールを送信できるようにするには、Day CQ Mail Service を適切に設定する必要があります。設定は web コンソールで確認できます。AEM を操作しているときは、このようなサービスの設定を管理する方法がいくつかあります。詳細および推奨事項については、OSGi の設定を参照してください。
以下の制約が適用されます。
SMTP サーバーポートは 25 以上にする必要があります。
SMTP サーバーホスト名は空白にできません。
「送信元」アドレスは空白にしてはなりません。
Day CQ Mail Service の問題をデバッグしやすくするために、サービスのログを監視できます。
com.day.cq.mailer.DefaultMailService
設定は、Web コンソールに次のように表示されます。
ページまたはフォーラムのイベント通知を購読するとき、送信元のメールアドレスは、デフォルトで 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
)を、実際のメールアドレスに置き換えます。
ファイルを保存します。
ワークフローのメール通知を受け取ると、送信元メールアドレスおよびホスト URL プレフィックスの両方がデフォルト値に設定されます。Web コンソールで Day CQ Workflow Email Notification Service を設定して、これらの値を変更できます。その場合は、リポジトリ内の変更内容を保存することをお勧めします。
デフォルト設定は、web コンソールに次のように表示されます。
ページ通知用のメールテンプレートは、次の場所にあります。
/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.
ページ通知用の英語のメールテンプレートをカスタマイズするには:
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
ワークフロー通知用のメールテンプレート(英語)は、次の場所にあります。
/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.
ワークフローイベント通知用の英語のメールテンプレートをカスタマイズするには:
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>
文字列変数の終了と見なされます。
テンプレート形式について詳しくは、Properties.load() メソッドの javadocs を参照してください。
メソッド ${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
新しい言語用のテンプレートを追加するには、次の手順に従います。
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 のコレクションが共有されている場合も共有されていない場合も、ユーザーは AEM からメール通知を受信できます。メール通知を設定するには、次の手順に従います。
AEMは、組織が安全な電子メール要件に準拠できるように、OAuth2 を統合メーラーサービスに対してサポートしています。
以下に示すように、複数のメールプロバイダーに対して OAuth を設定できます。
この手順は、公開インスタンスの例です。オーサーインスタンスでメール通知を有効にするには、オーサー上で同じ手順を実行する必要があります。
https://console.developers.google.com/projectcreate
でプロジェクトを作成https://mail.google.com/
https://www.googleapis.com//auth/gmail.send
AEM 側の設定
Adobe Managed Service をご利用のお客様は、顧客サービスエンジニアと協力して、これらの変更を本番環境に加えることができます。
まず、メールサービスを設定します。
http://serveraddress:serverport/system/console/configMgr
に移動して、AEM web コンソールを開きますsmtp.gmail.com
25
または 587
(要件に応じて)次に、以下の手順に従って、SMTP OAuth プロバイダーを設定します。
http://serveraddress:serverport/system/console/configMgr
に移動して、AEM web コンソールを開きます。https://accounts.google.com/o/oauth2/auth
https://accounts.google.com/o/oauth2/token
https://www.googleapis.com/auth/gmail.send
および https://mail.google.com/
。複数の範囲を追加するには、設定された各範囲の右側にある「+」ボタンをクリックします。https://accounts.google.com/o/oauth2/token
設定が完了すると、設定は次のようになります。
次に、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
でトークンにアクセスできます。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 を設定するために、次の情報が必要です。
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
AEM 側の設定
次に、OAuth2 の設定を AEM と統合します。
http://serveraddress:serverport/system/console/configMgr
をブラウジングすることで、ローカルインスタンスの web コンソールに移動します。smtp.office365.com
25
または 587
https://outlook.office365.com/Mail.Send
https://outlook.office365.com/Mail.Read
https://outlook.office365.com/SMTP.Send
http://localhost:4503/services/mailer/oauth2/token
設定が完了すると、設定は次のようになります。
次に、OAuth コンポーネントをアクティベートします。手順は次のとおりです。
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)のページにリダイレクトされます。accessToken
のトークンにアクセスできます。http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth