設定電子郵件通知

上次更新: 2023-12-04

AEM傳送電子郵件通知給使用者,符合以下條件:

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

  • 已訂閱論壇活動。

  • 必須在工作流程中執行步驟。 此 參與者步驟 一節說明如何在工作流程中觸發電子郵件通知。

先決條件:

  • 使用者需要在其設定檔中定義有效的電子郵件地址。
  • Day CQ郵件服務 需要正確設定。

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

注意

使用AEM時,有數種方法可管理此類服務的組態設定;請參閱 設定OSGi 以取得詳細資訊和建議作法。

設定郵件服務

為了讓AEM能夠傳送電子郵件, Day CQ郵件服務 需要正確設定。 您可以在Web主控台中檢視組態。 使用AEM時,有數種方法可管理此類服務的組態設定;請參閱 設定OSGi 以取得詳細資訊和建議作法。

下列限制適用:

  • SMTP伺服器連線埠 必須為25或更高。

  • smtp伺服器主機名稱 不得為空白。

  • 「寄件者」地址 不得為空白。

為協助您針對相關問題進行偵錯 Day CQ郵件服務,您可以觀看服務的記錄:

com.day.cq.mailer.DefaultMailService

在Web主控台中的設定如下所示:

Day CQ Mail Service OSGi設定視窗

設定電子郵件通知通道

當您訂閱頁面或論壇事件通知時,寄件者電子郵件地址會設為 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首碼都會設定為預設值。 您可以透過設定 Day CQ工作流程電子郵件通知服務 在Web主控台中。 如果這樣做,建議將變更保留在存放庫中。

在Web主控台中,預設設定如下所示:

Day CQ工作流程電子郵件通知服務設定視窗

頁面通知的電子郵件範本

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

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

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

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

  1. 在CRXDE中,開啟檔案:

    /libs/settings/notification-templates/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

工作流程通知的電子郵件範本

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

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

自訂工作流程通知的電子郵件範本

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

  1. 在CRXDE中,開啟檔案:

    /libs/settings/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()的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

新增新語言的電子郵件範本

新增新語言的範本:

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

    • /libs/settings/notification-templates/com.day.cq.wcm.core.page :用於頁面通知
    • /libs/settings/workflow/notification/email/default :用於工作流程通知
  2. 將檔案調整成語言。

  3. 儲存變更。

注意

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

設定AEM Assets電子郵件通知

共用或取消共用AEM Assets中的集合時,使用者可以接收來自AEM的電子郵件通知。 若要設定電子郵件通知,請依照下列步驟執行。

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

設定OAuth

AEM為其整合的郵件程式服務提供OAuth2支援,以允許組織遵守安全電子郵件要求。

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

注意

此程式是發佈執行個體的範例。 如果您想在作者執行個體上啟用電子郵件通知,您需要對作者執行相同的步驟。

Gmail

  1. 建立您的專案於 https://console.developers.google.com/projectcreate
  2. 選取您的專案,然後前往 API與服務 - 控制面板 — 認證
  3. 根據您的要求設定OAuth同意畫面
  4. 在隨後的「更新畫面」中,新增這兩個範圍:
    • https://mail.google.com/
    • https://www.googleapis.com//auth/gmail.send
  5. 新增範圍後,請返回 認證 在左側功能表中,然後前往 建立認證 - OAuth使用者端ID - 案頭應用程式
  6. 隨即開啟新視窗,其中包含「使用者端ID」和「使用者端密碼」。
  7. 儲存這些認證。

AEM Side設定

注意

「Adobe受管服務」客戶可與他們的客戶服務工程師合作,對生產環境進行這些變更。

首先,設定郵件服務:

  1. 開啟AEM Web Console,方法是前往 http://serveraddress:serverport/system/console/configMgr
  2. 尋找,然後按一下 Day CQ郵件服務
  3. 新增下列設定:
    • SMTP伺服器主機名稱: smtp.gmail.com
    • SMTP伺服器連線埠: 25587,視需求而定
    • 勾選勾選方塊 SMPT使用StarTLSSMTP需要StarTLS
    • 檢查 OAuth流程 並按一下 儲存.

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

  1. 開啟AEM Web Console,方法是前往 http://serveraddress:serverport/system/console/configMgr
  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
    • 重新整理Token到期日:永不
  4. 按一下「儲存」。

設定完成後,設定應該如下所示:

CQ Mailer SMTP Oauth2提供者設定視窗

現在啟動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. 按元件左側的「播放」圖示

    顯示OAuthCodeGenerateServlet和OAuthCodeAccessTokenGenerator的元件清單

最後,透過以下方式確認設定:

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

Microsoft Outlook

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

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

  3. 按一下「應用程式註冊 - 新註冊

    設定Microsoft Outlook時的新註冊按鈕

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

  5. 前往新建的應用程式,然後選取「API 權限

  6. 移至「新增權限 - Graph 權限 - 委派的權限

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

    • SMTP.Send
    • Mail.Read
    • Mail.Send
    • openid
    • offline_access
  8. 前往 驗證 - 新增平台 - Web,以及 重新導向Url 區段,新增下列URL以重新導向OAuth程式碼,然後按 設定

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

  10. 根據您的需求進行設定

  11. 接著,前往 憑證和密碼,按一下 新使用者端密碼 並依照熒幕上的步驟建立密碼。 請務必記下此密碼以備稍後使用

  12. 在左側窗格中按「概觀」並複製「應用程式 (用戶端) ID」和「目錄 (租用戶) ID」的值以供稍後使用

回顧一下,您必須擁有下列資訊才能為AEM端的郵件程式服務設定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 Side設定

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

  1. 瀏覽至您本機執行個體的Web主控台 http://serveraddress:serverport/system/console/configMgr
  2. 尋找並按一下 Day CQ郵件服務
  3. 新增下列設定:
    • SMTP伺服器主機名稱: smtp.office365.com
    • SMTP使用者:您的使用者名稱(電子郵件格式)
    • 「寄件者」地址:郵件程式所傳送訊息的「寄件者:」欄位中使用的電子郵件地址
    • SMTP伺服器連線埠: 25587 視需求而定
    • 勾選勾選方塊 SMPT使用StarTLSSMTP需要StarTLS
    • 檢查 OAuth流程 並按一下 儲存.
  4. 尋找,然後按一下 CQ郵件程式SMTP OAuth2提供者
  5. 請依照以下說明填寫必要資訊:
    • 填入授權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的值相同
  6. 按一下「儲存」。

設定完成後,設定應該如下所示:

完成的CQ Mailer SMTP OAuth2設定

現在啟動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. 按元件左側的「播放」圖示

包含OAuthCodeGenerateServlet和OAuthCodeAccessTokenGenerator的元件清單片段

最後,透過以下方式確認設定:

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

本頁內容