AEM as a Cloud Service:使用自訂OSGi服務時的SendGrid API電子郵件傳送問題

本文提供從Adobe Experience Manager as a Cloud Service的自訂OSGi服務透過SendGrid API傳送電子郵件時,相關問題的解決步驟。

說明 description

環境

Adobe Experience Manager (AEM) as a Cloud Service (所有版本)
問題/症狀

嘗試使用與SendGrid REST API (https://api.sendgrid.com/v3/mail/send)整合的自訂OSGi服務來傳送電子郵件失敗。 透過Cloud Manager部署程式碼,並執行呼叫SendGrid電子郵件服務的工作流程後,就會發生問題。

  • 使用@ObjectClassDefinition建立的自訂OSGi設定介面。
  • 設定檔已新增至/apps/csuf-cloud/osgiconfig/config (例如: com.csuf.cloud.core.config.SendGridConfiguration.cfg.json)。
  • 使用Cloud Manager機密(SENDGRID_API_KEY)設定的API金鑰。
  • from_email已設定為有效的寄件者地址。
  • 自訂工作流程程式會觸發SendGrid電子郵件服務。
  • 未提供明確的錯誤訊息,但電子郵件未按預期傳送。

解決方法 resolution

  1. 驗證SendGrid API金鑰使用情形

    • 請確定OSGi設定中API金鑰的值已設為包含SendGrid API金鑰的Cloud Manager機密。

    • 使用SendGrid API進行驗證時,無論在SendGrid中建立的實際API金鑰值為何,一律使用常值字串apikey作為使用者名稱。

    • 設定範例:

      code language-none
      "smtp.user": "apikey",
      "api_key": "<Cloud Manager secret reference>"
      
  2. 檢查OSGi設定部署

    • 確認OSGi設定檔案已正確部署至/apps/<project>/osgiconfig/config,並由AEM擷取。
    • 驗證設定值(API金鑰、寄件者電子郵件)正確且非空白。
  3. 驗證Cloud Manager密碼參考

    • 請確定您的設定已正確參考Cloud Manager密碼(SENDGRID_API_KEY),而且可在執行階段使用。
  4. 測試電子郵件傳遞

    • 從AEM作者環境觸發工作流程程式,並監視成功的電子郵件傳送。
    • 檢查AEM和SendGrid記錄檔,瞭解任何錯誤或拒絕的要求。

原因

SendGrid API要求使用者名稱必須設定為apikey才能驗證,無論實際的API金鑰值為何。 使用者名稱或API金鑰的設定不正確,可能會阻止電子郵件成功傳遞。

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