配置電子郵件通知

AEM會傳送電子郵件通知給下列使用者:

  • 已訂閱頁面事件,例如修改或復寫。 通知收件匣區段說明如何訂閱這類事件。

  • 已訂閱論壇活動。

  • 必須在工作流程中執行步驟。 參與者步驟部分介紹如何在工作流中觸發電子郵件通知。

先決條件:

  • 使用者的設定檔中必須定義有效的電子郵件地址。
  • Day CQ Mail Service​需要正確配置。

收到通知時,使用者會收到其設定檔中定義的語言電子郵件。 每種語言都有各自的範本,可供自訂。 可針對新語言新增新的電子郵件範本。

注意

使用AEM時,有數種方法可管理這類服務的組態設定;如需詳細資訊和建議實務,請參閱設定OSGi

配置郵件服務

若要讓AEM能夠傳送電子郵件,Day CQ Mail Service​必須正確設定。 您可以在Web主控台中檢視設定。 使用AEM時,有數種方法可管理這類服務的組態設定;如需詳細資訊和建議實務,請參閱設定OSGi

下列限制適用:

  • SMTP伺服器埠​必須是25或更高。

  • SMTP伺服器主機名​不得空白。

  • "From"地址​不得空白。

若要協助您對​Day CQ Mail Service​的問題進行偵錯,您可以監看服務的記錄檔:

com.day.cq.mailer.DefaultMailService

在Web控制台中,配置如下所示:

chlimage_1-276

配置電子郵件通知通道

當您訂閱頁面或論壇事件通知時,預設會將寄件者電子郵件地址設為no-reply@acme.com。 您可以在Web主控台中設定​通知電子郵件通道​服務,以變更此值。

若要設定寄件者電子郵件地址,請新增sling:OsgiConfig節點至存放庫。 使用以下過程直接使用CRXDE Lite添加節點:

  1. 在「CRXDE Lite」中,在應用程式資料夾下添加名為config的資料夾。

  2. 在設定資料夾中,新增節點:

    com.day.cq.wcm.notification.email.impl.EmailChannel 類型 sling:OsgiConfig

  3. String屬性新增至名為email.from的節點。 對於值,指定您要使用的電子郵件地址。

  4. 按一下「全部保存」。

使用以下過程來定義內容包源資料夾中的節點:

  1. jcr_root/apps/*app_name*/config folder中,建立名為com.day.cq.wcm.notification.email.impl.EmailChannel.xml的檔案

  2. 添加以下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"/>

  3. email.from屬性(name@server.com)的值取代為您的電子郵件地址。

  4. 儲存檔案。

配置工作流電子郵件通知服務

當您收到工作流程電子郵件通知時,寄件者電子郵件地址和主機URL首碼都會設為預設值。 您可以在Web主控台中設定​Day CQ Workflow Email Notification Service​以變更這些值。 若您這麼做,建議您將變更保留在存放庫中。

預設配置在Web控制台中如下所示:

chlimage_1-277

頁面通知的電子郵件範本

頁面通知的電子郵件範本位於下方:

/etc/notification/email/default/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.

自訂頁面通知的電子郵件範本

若要自訂頁面通知的英文電子郵件範本:

  1. 在CRXDE中,開啟檔案:

    /etc/notification/email/default/com.day.cq.wcm.core.page/en.txt

  2. 根據您的需求修改檔案。

  3. 儲存變更。

範本必須具備下列格式:

 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

論壇通知的電子郵件模板

論壇通知的電子郵件範本位於:

/etc/notification/email/default/com.day.cq.collab.forum

預設英文模板(en.txt)的定義如下:

subject=[CQ Forum Notification]

header=-------------------------------------------------------------------------------------\n \
Time: Time: ${time}\n \
Forum Page Path: ${forum.path}\n \
-------------------------------------------------------------------------------------\n\n

message=Page: ${host.prefix}${forum.path}.html\n

footer=\n \
-------------------------------------------------------------------------------------\n \
This is an automatically generated message. Please do not reply.

自訂論壇通知的電子郵件範本

若要自訂論壇通知的英文電子郵件範本:

  1. 在CRXDE中,開啟檔案:

    /etc/notification/email/default/com.day.cq.collab.forum/en.txt

  2. 根據您的需求修改檔案。

  3. 儲存變更。

範本必須具備下列格式:

 subject=<text_1>
 header=<text_2>
 message=<text_3>
 footer=<text_4>

其中<text_x>可以是靜態文字和動態字串變數的混合。

下列變數可在電子郵件範本中用於論壇通知:

  • ${time},事件日期和時間。

  • ${forum.path},即論壇頁面的路徑。

工作流通知的電子郵件模板

工作流程通知的電子郵件範本(英文)位於:

/etc/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.

自定義工作流通知的電子郵件模板

若要自訂工作流程事件通知的英文電子郵件範本:

  1. 在CRXDE中,開啟檔案:

    /etc/workflow/notification/email/default/en.txt

  2. 根據您的需求修改檔案。

  3. 儲存變更。

範本必須具備下列格式:

subject=<text_1>
 header=<text_2>
 message=<text_3>
 footer=<text_4>
注意

其中<text_x>可以是靜態文字和動態字串變數的混合。 <text_x>項目的每行都需要以反斜線(\)結尾,但最後一個實例除外,因為沒有反斜線表示<text_x>字串變數的結尾。

有關模板格式的詳細資訊,請參見Properties.load() 🔗方法的javadoc。

方法${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

為新語言添加電子郵件模板

為新語言添加模板:

  1. 在CRXDE中,新增下方的檔案<language-code>.txt:

    • /etc/notification/email/default/com.day.cq.wcm.core.page :頁面通知
    • /etc/notification/email/default/com.day.cq.collab.forum :論壇通知
    • /etc/workflow/notification/email/default :工作流通知
  2. 使檔案適應語言。

  3. 儲存變更。

注意

<language-code>作為電子郵件範本的檔案名稱必須是AEM可辨識的小寫字母語言代碼。 對於語言代碼,AEM需依賴ISO-639-1。

設定AEM Assets電子郵件通知

AEM Assets中的集合為共用或非共用時,使用者會收到AEM的電子郵件通知。 若要設定電子郵件通知,請遵循下列步驟。

  1. 如上文設定郵件服務中所述,配置電子郵件服務。
  2. 以管理員身分登入AEM。 按一下​工具 > 操作 > Web控制台​以開啟Web控制台配置。
  3. 編輯​Day CQ DAM資源收集Servlet。 選取​傳送電子郵件。 按一下「儲存」。

設定OAuth

AEM提供OAuth2的整合式Mailer服務支援,讓組織能夠遵守安全的電子郵件需求。

您可以為多個電子郵件提供者設定OAuth,如下所述。

Gmail

  1. https://console.developers.google.com/projectcreate建立專案
  2. 選取您的專案,然後前往​API & Services - Dashboard - Credentials
  3. 根據您的需求設定OAuth同意畫面
  4. 在下面的更新螢幕中,添加以下兩個作用域:
    • https://mail.google.com/
    • https://www.googleapis.com//auth/gmail.send
  5. 新增範圍後,返回左側功能表中的​憑證,然後前往​建立憑證 - OAuth用戶端ID - 案頭應用程式
  6. 將會開啟一個新視窗,其中包含用戶端ID和用戶端密碼。
  7. 保存這些憑據。

AEM端組態

注意

Adobe管理服務客戶可與其客戶服務工程師合作,對生產環境進行這些變更。

首先,配置郵件服務:

  1. 前往http://serveraddress:serverport/system/console/configMgr開啟AEM Web主控台
  2. 尋找,然後按一下​Day CQ Mail Service
  3. 新增下列設定:
    • SMTP 伺服器主機名稱: smtp.gmail.com
    • SMTP伺服器埠:25587,視需求而定
    • 勾選​SMPT使用StarTLS​和​SMTP需要StarTLS​的代號
    • 檢查​OAuth流​並按一下​Save

接下來,請依照下列程式來設定您的SMTP OAuth提供者:

  1. 前往http://serveraddress:serverport/system/console/configMgr開啟AEM Web主控台
  2. 查找,然後按一下​CQ郵件程式SMTP OAuth2提供程式
  3. 填寫所需資訊如下:
    • 授權URL:https://accounts.google.com/o/oauth2/auth
    • 代號URL:https://accounts.google.com/o/oauth2/token
    • 範圍:https://www.googleapis.com/auth/gmail.sendhttps://mail.google.com/。 通過按每個配置範圍右側的​+​按鈕,可以添加多個範圍。
    • 用戶端ID和用戶端密碼:使用您依上段所述擷取的值來設定這些欄位。
    • 重新整理記號 URL: https://accounts.google.com/o/oauth2/token
    • 重新整理代號過期:從不
  4. 按一下「儲存」。

設定後,設定應如下所示:

oauth smtp提供程式

現在,啟動OAuth元件。 您可以透過下列方式執行此作業:

  1. 請造訪此URL,前往元件主控台:http://serveraddress:serverport/system/console/components

  2. 尋找下列元件

    • com.day.cq.mailer.oauth.servlets.handler.OAuthCodeGenerateServlet
    • com.day.cq.mailer.oauth.servlets.handler.OAuthCodeAccessTokenGenerator
  3. 按元件左側的「播放」圖示

    元件

最後,請依下列方式確認設定:

  1. 前往Publish例項的位址,並以管理員身分登入。
  2. 在瀏覽器中開啟新標籤,然後前往http://serveraddress:serverport/services/mailer/oauth2/authorize。 這會將您重新導向至SMTP提供者的頁面,在此例中為Gmail。
  3. 登入並同意授予必要的權限
  4. 同意後,Token會儲存在存放庫中。 您可以直接在發佈執行個體上存取此URL,以在accessToken下存取它:http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth2
  5. 對每個發佈例項重複上述步驟

Microsoft Outlook

  1. 前往https://portal.azure.com/並登入。

  2. 在搜索欄中搜索​Azure Active Directory,然後按一下結果。 或者,您也可以直接瀏覽至https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview

  3. 按一下​App Registration - New Registration

  4. 根據您的要求填寫資訊,然後按一下​註冊

  5. 前往新建立的應用程式,並選取​API權限

  6. 前往​新增權限 - 圖表權限 - 委派權限

  7. 選取您應用程式的下列權限,然後按一下「新增權限」:

    • SMTP.Send
    • Mail.Read
    • Mail.Send
    • openid
    • offline_access
  8. 前往​Authentication - 新增平台 - Web,並在​Redirect Url​區段中,新增下列URL以重新導向OAuth程式碼,然後按​Configure:

    • http://localhost:4503/services/mailer/oauth2/token
  9. 對每個發佈例項重複上述步驟

  10. 根據您的需求配置設定

  11. 接下來,轉到​Certificates and Secrets,按一下​New client secret,然後按照螢幕上的步驟建立密碼。 請務必注意此機密以供日後使用

  12. 在左窗格中按​Overview,並複製​Application(client)ID​和​Directory(tenant)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
  • 將以租用戶ID建構的重新整理URL。 它會有此表格:https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
  • 用戶端ID
  • 用戶端密碼

AEM端組態

接下來,整合您的OAuth2設定與AEM:

  1. 瀏覽至http://serveraddress:serverport/system/console/configMgr,前往本機執行個體的Web主控台
  2. 查找並按一下​Day CQ Mail Service
  3. 新增下列設定:
    • SMTP 伺服器主機名稱: smtp.office365.com
    • SMTP用戶:電子郵件格式中的用戶名
    • 「寄件者」地址:要在郵件者所傳送訊息的「寄件者:」欄位中使用的電子郵件地址
    • SMTP伺服器埠:25587,視需求而定
    • 勾選​SMPT使用StarTLS​和​SMTP需要StarTLS​的代號
    • 檢查​OAuth流​並按一下​Save
  4. 查找,然後按一下​CQ郵件程式SMTP OAuth2提供程式
  5. 填寫所需資訊如下:
    • 按照此過程結尾的中的說明來建構授權URL、權杖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
    • 重新整理Token URL:此值應與上方的代號URL相同
  6. 按一下「儲存」。

設定後,設定應如下所示:

現在,啟動OAuth元件。 您可以透過下列方式執行此作業:

  1. 請造訪此URL,前往元件主控台:http://serveraddress:serverport/system/console/components
  2. 尋找下列元件
    • com.day.cq.mailer.oauth.servlets.handler.OAuthCodeGenerateServlet
    • com.day.cq.mailer.oauth.servlets.handler.OAuthCodeAccessTokenGenerator
  3. 按元件左側的「播放」圖示

元件2

最後,請依下列方式確認設定:

  1. 前往Publish例項的位址,並以管理員身分登入。
  2. 在瀏覽器中開啟新標籤,然後前往http://serveraddress:serverport/services/mailer/oauth2/authorize。 這會將您重新導向至SMTP提供者的頁面,在此例中為Gmail。
  3. 登入並同意授予必要的權限
  4. 同意後,Token會儲存在存放庫中。 您可以直接在發佈執行個體上存取此URL,以在accessToken下存取它:http://serveraddress:serverport/crx/de/index.jsp#/conf/global/settings/mailer/oauth2

本頁內容