AEM傳送電子郵件通知給使用者:
先決條件:
當使用者收到通知時,他將會收到在其設定檔中定義的語言電子郵件。 每種語言都有各自的範本可供自訂。 可以為新語言新增新的電子郵件範本。
使用AEM時,有數種方法可管理此類服務的組態設定;請參閱 設定OSGi 以取得詳細資訊和建議作法。
為了讓AEM能夠傳送電子郵件, Day CQ郵件服務 需要正確設定。 您可以在Web主控台中檢視設定。 使用AEM時,有數種方法可管理此類服務的組態設定;請參閱 設定OSGi 以取得詳細資訊和建議作法。
下列限制適用:
此 SMTP伺服器連線埠 「 」必須為25或更高。
此 smtp伺服器主機名稱 不得為空白。
此 「寄件者」地址 不得為空白。
為協助您對問題進行偵錯 Day CQ郵件服務,您可以檢視服務的記錄:
com.day.cq.mailer.DefaultMailService
在Web主控台中,設定如下所示:
當您訂閱頁面或論壇事件通知時,寄件者電子郵件地址會設為 no-reply@acme.com
根據預設。 您可以透過設定 通知電子郵件頻道 Web控制檯中的服務。
若要設定寄件者電子郵件地址,請新增 sling:OsgiConfig
節點至存放庫。 使用以下程式,透過CRXDE Lite直接新增節點:
在CRXDE Lite中,新增名為的資料夾 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首碼都會設為預設值。 您可以透過設定 Day CQ工作流程電子郵件通知服務 在Web主控台中。 若您這麼做,建議您將變更保留在存放庫中。
在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/en/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可辨識的雙字母小寫語言代碼。 對於語言代碼,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 Side設定
Adobe Managed Service客戶可與客戶服務工程師合作,對生產環境進行這些變更。
首先,設定郵件服務:
http://serveraddress:serverport/system/console/configMgr
smtp.gmail.com
25
或 587
,視需求而定接下來,請依照下列程式設定您的SMTP OAuth提供者:
http://serveraddress:serverport/system/console/configMgr
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。accessToken
直接存取發佈執行個體上的此URL: http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth
前往 https://portal.azure.com/ 並登入。
在搜尋列中搜尋 Azure Active Directory,然後按一下結果。或者,您可以直接瀏覽到 https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview
按一下「應用程式註冊 - 新註冊」
根據您的要求填寫資訊,然後按一下「註冊」
前往新建的應用程式,然後選取「API 權限」
移至「新增權限 - Graph 權限 - 委派的權限」
為您的應用程式選取以下權限,然後按一下「新增權限」:
SMTP.Send
Mail.Read
Mail.Send
openid
offline_access
前往 驗證 - 新增平台 - Web,以及 重新導向Url 區段,新增下列URL以重新導向OAuth程式碼,然後按下 設定:
http://localhost:4503/services/mailer/oauth2/token
對每個發佈執行個體重複上述步驟
根據您的需求進行設定
接下來,移至「憑證和密碼」,按一下「新增用戶端密碼」,並按照畫面上的步驟建立密碼。請務必記下此密碼以備稍後使用
在左側窗格中按「概觀」並複製「應用程式 (用戶端) ID」和「目錄 (租用戶) ID」的值以供稍後使用
回顧一下,您需要以下資訊為AEM端的郵件程式服務設定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 Side設定
接下來,將您的OAuth2設定與AEM整合:
http://serveraddress:serverport/system/console/configMgr
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
直接存取發佈執行個體上的此URL: http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth