AEM as a Cloud Service: SMTP電子郵件傳遞失敗

當郵件服務設定為非預設連線埠直接連線至外部SMTP主機,或必要的進階網路連線埠轉送設定遺失或不正確時,Adobe Experience Manager as a Cloud Service (AEMaaCS)中的SMTP電子郵件傳送可能會失敗。 為SMTP目的地設定「進階網路」,並將Day CQ Mail Service更新為使用Proxy主機和對應的Proxy連線埠,以解決此問題。

說明 description

環境

Adobe Experience Manager as a Cloud Service (所有版本)

問題/症狀

嘗試透過SMTP傳送電子郵件時(例如透過轉出工作或非同步工作),電子郵件傳送會失敗。 在記錄中觀察到以下錯誤:

Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : your-smtp-host:465
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1298) [ org.apache.commons.commons-email:1.6.0]
    ...
Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: your-smtp-host, 465; timeout 60000
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209) [ com.sun.mail.javax.mail:1.6.2]
    ...
Caused by: java.net.SocketTimeoutException: Connect timed out
    at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:546)
  • 使用SMTP的工作或程式電子郵件傳送失敗。
  • 當郵件服務嘗試連線到連線埠465上的SMTP伺服器時,記錄會顯示連線逾時。
  • 應檢閱Day CQ Mail Service設定,確認AEM as a Cloud Service使用必要的Proxy主機和對應的Proxy連線埠,而非直接連線至外部SMTP主機和連線埠。

根本原因

在AEM as a Cloud Service中,若使用非預設的SMTP連線埠(例如465)而沒有必要的進階網路連線埠轉送設定,或郵件服務設定為直接使用外部SMTP主機和目的地連線埠,而非對應的代理主機和連線埠,SMTP傳送可能會失敗。

解決方法 resolution

請嘗試下列步驟來解決問題:

  1. 確保目標AEM as a Cloud Service程式和環境已啟用進階網路,並且您擁有更新網路和設定的必要許可權。

  2. 在Cloud Manager中,開啟相關的程式和環境。 移至進階網路,並為您的SMTP服務設定彈性的連線埠輸出規則。 使用類似下列範例的規則,將主機名稱和連線埠取代為SMTP提供者所需的值。 為您的環境使用檔案範圍內的適當portOrig值。 儲存設定並套用至環境。

    code language-json
    {
      "nonProxyHosts": [ ] ,
      "portForwards": [
        {
          "name": "smtp.example.com",
          "portDest": 465,
          "portOrig": 30465
        }
      ]
    }
    
  3. 將郵件服務設定為使用Proxy主機和對應的Proxy連線埠,而不是直接連線到外部SMTP主機和連線埠。 請使用下列值:

    • smtp.host: $[ env:AEM_PROXY_HOST;default=proxy.tunnel]
    • smtp.port<mapped-port> (或以上設定的portOrig值)
    • smtp.user:您SMTP使用者名稱的秘密支援值
    • smtp.password:您SMTP密碼的秘密支援值
    • from.address:有效的寄件者地址,例如no-reply@example.com
    • smtp.ssl:目的地SMTP服務使用連線埠465時,true
  4. 使用支援的AEM as a Cloud Service秘密支援設定提供SMTP使用者名稱和密碼,而非將常值認證值儲存在程式碼中。

  5. 透過您的標準Cloud Manager部署程式部署更新的設定,然後重新執行傳送電子郵件的程式並確認連線成功,以測試電子郵件傳遞。

相關閱讀

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