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環境連線。
如何確認
- 判斷環境是否支援SMTP。 識別環境是沙箱、RDE、預備還是生產。 沙箱或RDE不支援SMTP,因此測試必須在中繼或生產層級的環境中進行。
- 確認預期的SMTP端點為外部和公用。 AEMaaCS無法連線到內部或AMS SMTP主機,因此無論設定為何,僅限內部的伺服器都無法運作。
解決方法 resolution
請依照下列步驟解決問題:
-
選取並準備外部SMTP提供者。 選擇公用、已驗證的SMTP提供者,並取得其主機、連線埠、使用者名稱和密碼。 這些認證來自您的電子郵件提供者 — Adobe不提供SMTP認證。
-
在Cloud Manager中設定進階網路。 建立
portForwards,其中portOrig設定在 30000-30999 範圍內,且portDest設定為 465 或587(視您的SMTP提供者而定)。 確認Cloud Manager管道JSON包含portForwards區塊。 -
將郵件服務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
-
透過Cloud Manager重新部署。 執行完整部署管道,然後開啟
/system/console/configMgr(唯讀,但可在AEMaaCS上看到)並確認com.day.cq.mailer.DefaultMailService反映設定的值。 -
驗證SMTP連線。 觸發AEM工作流程電子郵件或透過自訂servlet傳送電子郵件,然後檢查您的SMTP提供者記錄檔中是否有已驗證的連線。 如果傳遞遭到封鎖,請檢查提供者是否因DKIM/DMARC而拒絕傳遞,此問題會在SMTP提供者層級(而非AEM)處理。
驗證
- 確認從AEM傳送的電子郵件會出現在SMTP提供者的控制面板記錄中。
- 確認Day CQ Mail Service在OSGi主控台的 30000-30999 範圍中顯示
smtp.host= proxy.tunnel和smtp.port。 - 確認AEM
error.log未顯示SMTP連線錯誤。