配置电子邮件通知 configuring-email-notification
AEM会向符合以下条件的用户发送电子邮件通知:
先决条件:
- 用户需要在其个人资料中定义有效的电子邮件地址。
- 需要正确配置 天CQ邮件服务。
当用户收到通知时,将收到其用户档案中定义的语言版本的电子邮件。 每种语言都有其自己的可自定义的模板。 可以为新语言添加新电子邮件模板。
配置邮件服务 configuring-the-mail-service
为了使AEM能够发送电子邮件,需要正确配置 Day CQ邮件服务。 您可以在Web控制台中查看配置。 使用AEM时,可通过多种方法管理此类服务的配置设置;请参阅配置OSGi以了解更多详细信息和建议的做法。
以下约束适用:
-
SMTP服务器端口 必须为25或更高。
-
SMTP服务器主机名 不能为空。
-
“发件人”地址 不能为空。
为了帮助您调试 Day CQ邮件服务 的问题,您可以查看该服务的日志:
com.day.cq.mailer.DefaultMailService
该配置在Web控制台中如下所示:
配置电子邮件通知渠道 configuring-the-email-notification-channel
当您订阅页面或论坛事件通知时,发件人电子邮件地址默认设置为no-reply@acme.com
。 您可以通过在Web控制台中配置 通知电子邮件渠道 服务来更改此值。
要配置发件人电子邮件地址,请向存储库添加一个sling:OsgiConfig
节点。 使用以下过程使用CRXDE Lite直接添加节点:
-
在CRXDE Lite中,在应用程序文件夹下添加名为
config
的文件夹。 -
在配置文件夹中,添加一个名为的节点:
sling:OsgiConfig
类型的com.day.cq.wcm.notification.email.impl.EmailChannel
-
将
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工作流电子邮件通知服务 来更改这些值。 如果这样做,建议将更改保留在存储库中。
在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}
,以格式描述页面事件的类型和页面路径:<页面事件类型> => <页面路径>
例如:
PageModified => /content/geometrixx/en/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}
显示工作项的有效负荷的路径。 例如,对于网站中的页面,则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可识别的双字母小写语言代码。 对于语言代码,AEM依赖于ISO-639-1。配置AEM Assets电子邮件通知 assetsconfig
在共享或取消共享AEM Assets中的收藏集时,用户可以从AEM接收电子邮件通知。 要配置电子邮件通知,请执行以下步骤。
- 配置电子邮件服务,如配置邮件服务中所述。
- 以管理员身份登录AEM。 单击 工具 > 操作 > Web控制台 以打开Web控制台配置。
- 编辑 Day CQ DAM资源收集Servlet。 选择 发送电子邮件。 单击 保存。
设置OAuth setting-up-oauth
AEM为其集成的邮件程序服务提供OAuth2支持,以允许组织遵守安全电子邮件要求。
您可以为多个电子邮件提供商配置OAuth,如下所述。
Gmail gmail
-
在
https://console.developers.google.com/projectcreate
创建项目 -
选择您的项目,然后转到 API和服务 - 仪表板 — 凭据
-
根据您的要求配置OAuth同意屏幕
-
在后续的更新屏幕中,添加这两个范围:
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邮件服务
-
添加以下设置:
- 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提供程序
-
按如下方式填写所需信息:
- 授权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
-
按组件左侧的播放图标
最后,通过以下方式确认配置:
- 转到Publish实例的地址,并以管理员身份登录。
- 在浏览器中打开新选项卡,然后转到
http://serveraddress:serverport/services/mailer/oauth2/authorize
。 这会将您重定向到SMTP提供商的页面,在本例中为Gmail。 - 登录并同意授予所需权限
- 同意后,令牌将存储在存储库中。 您可以通过直接访问发布实例上的此URL在
accessToken
下访问它:http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth
- 对每个发布实例重复以上步骤
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 部分中添加以下URL以重定向OAuth代码,然后按 配置:
http://localhost:4503/services/mailer/oauth2/token
-
对每个发布实例重复以上步骤
-
根据您的要求配置设置
-
接下来,转到 证书和密码,单击 新建客户端密码,并按照屏幕上的步骤创建密码。 请务必记下此密码供以后使用
-
按左窗格中的 概述,复制 应用程序(客户端)ID 和 目录(租户)ID 的值供以后使用
回顾一下,您必须具有以下信息才能在AEM端为邮件程序服务配置OAuth2:
- 将使用租户 ID 构建的身份验证 URL。它采用以下形式:
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
- 将使用租户 ID 构建的令牌 URL。它采用以下形式:
https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
- 将使用租户 ID 构建的刷新 URL。它采用以下形式:
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控制台 -
查找并单击 天CQ邮件服务
-
添加以下设置:
- SMTP服务器主机名:
smtp.office365.com
- SMTP用户:您的用户名,采用电子邮件格式
- “发件人”地址:在邮件程序发送的邮件的“发件人:”字段中使用的电子邮件地址
- SMTP服务器端口:
25
或587
,具体取决于要求 - 选中 SMPT的复选框使用StarTLS,SMTP需要StarTLS
- 检查 OAuth流程 并单击 保存。
- SMTP服务器主机名:
-
查找,然后单击 CQ Mailer SMTP OAuth2提供程序
-
按如下方式填写所需信息:
-
按照此过程末尾的处所述,通过构造授权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
-
按组件左侧的播放图标
最后,通过以下方式确认配置:
- 转到Publish实例的地址,并以管理员身份登录。
- 在浏览器中打开新选项卡,然后转到
http://serveraddress:serverport/services/mailer/oauth2/authorize
。 这会将您重定向到SMTP提供商的页面,在本例中为Outlook。 - 登录并同意授予所需权限
- 同意后,令牌将存储在存储库中。 您可以通过直接访问发布实例上的此URL在
accessToken
下访问它:http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth