AEM as a Cloud Service SMTP電子郵件無法運作或無法設定

AEM as a Cloud Service不包含SMTP伺服器,且無法連線至內部或AMS SMTP主機,因此當客戶期望內建伺服器或嘗試使用公司或舊版轉送時,電子郵件會失敗。 所有傳出電子郵件都必須通過客戶提供的公用、已驗證、透過進階網路路由的SMTP提供者,而且沙箱環境不支援進階網路,因此SMTP無法在該處運作。 選取外部SMTP提供者、設定進階網路連線埠轉送以及新增郵件服務OSGi設定,可啟用中繼和生產環境的電子郵件傳遞。

說明 description

環境:

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Assets Essentials
  • Cloud Manager (進階網路)
  • 中繼和生產環境(沙箱和RDE不支援進階網路)

問題/症狀:

  • 電子郵件適用於localhost ,但無法在AEM Cloud上運作,當程式碼部署至「作者」或「發佈」時,會出現500個錯誤。
  • 無法完成SMTP設定,因為客戶期望Adobe提供SMTP伺服器。
  • 無法在沙箱環境中傳送電子郵件,因為那裡不支援進階網路。
  • 嘗試使用僅限內部的SMTP伺服器失敗,因為AEMaaCS需要經過公用驗證的SMTP端點。

根本原因:

AEM as a Cloud Service不提供SMTP伺服器,且無法連線至內部SMTP主機。 所有傳出電子郵件都必須使用客戶提供的公用外部SMTP提供者,該提供者會透過進階網路進行路由。 沙箱環境不支援進階網路,因此在那裡無法使用SMTP。 嘗試使用AMS提供的非SLA SMTP伺服器時會失敗,因為這些伺服器無法從AEMaaCS Kubernetes環境連線。

如何確認

  1. 判斷環境是否支援SMTP。 識別環境是沙箱、RDE、預備還是生產。 沙箱或RDE不支援SMTP,因此測試必須在中繼或生產層級的環境中進行。
  2. 確認預期的SMTP端點為外部和公用。 AEMaaCS無法連線到內部或AMS SMTP主機,因此無論設定為何,僅限內部的伺服器都無法運作。

解決方法 resolution

請依照下列步驟解決問題:

  1. 選取並準備外部SMTP提供者。 選擇公用、已驗證的SMTP提供者,並取得其主機、連線埠、使用者名稱和密碼。 這些認證來自您的電子郵件提供者 — Adobe不提供SMTP認證。

  2. 在Cloud Manager中設定進階網路。 建立portForwards,其中portOrig設定在​ 30000-30999 ​範圍內,且portDest設定為​ 465 ​或​587(視您的SMTP提供者而定)。 確認Cloud Manager管道JSON包含portForwards區塊。

  3. 將郵件服務OSGi設定新增到您的存放庫。 使用以下值建立ui.config/src/jcr_root/apps/<project>/osgiconfig/config/com.day.cq.mailer.DefaultMailService.cfg.json

    • smtp.host = $[ env:AEM_PROXY_HOST;default=proxy.tunnel]
    • smtp.port =上一步驟中的portOrig值(例如: 30465​或​30587
    • 使用連線埠465時,smtp.ssl = true,或使用連線埠587時,false
  4. 透過Cloud Manager重新部署。 執行完整部署管道,然後開啟/system/console/configMgr (唯讀,但可在AEMaaCS上看到)並確認com.day.cq.mailer.DefaultMailService反映設定的值。

  5. 驗證SMTP連線。 觸發AEM工作流程電子郵件或透過自訂servlet傳送電子郵件,然後檢查您的SMTP提供者記錄檔中是否有已驗證的連線。 如果傳遞遭到封鎖,請檢查提供者是否因DKIM/DMARC而拒絕傳遞,此問題會在SMTP提供者層級(而非AEM)處理。

驗證

  1. 確認從AEM傳送的電子郵件會出現在SMTP提供者的控制面板記錄中。
  2. 確認Day CQ Mail Service在OSGi主控台的​ 30000-30999 ​範圍中顯示smtp.host = proxy.tunnel​和smtp.port
  3. 確認AEM error.log未顯示SMTP連線錯誤。

相關閱讀

recommendation-more-help
experience-cloud-kcs-help-kbarticles