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
-
驗證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>"
-
-
檢查OSGi設定部署
- 確認OSGi設定檔案已正確部署至
/apps/<project>/osgiconfig/config,並由AEM擷取。 - 驗證設定值(API金鑰、寄件者電子郵件)正確且非空白。
- 確認OSGi設定檔案已正確部署至
-
驗證Cloud Manager密碼參考
- 請確定您的設定已正確參考Cloud Manager密碼(
SENDGRID_API_KEY),而且可在執行階段使用。
- 請確定您的設定已正確參考Cloud Manager密碼(
-
測試電子郵件傳遞
- 從AEM作者環境觸發工作流程程式,並監視成功的電子郵件傳送。
- 檢查AEM和SendGrid記錄檔,瞭解任何錯誤或拒絕的要求。
原因
SendGrid API要求使用者名稱必須設定為apikey才能驗證,無論實際的API金鑰值為何。 使用者名稱或API金鑰的設定不正確,可能會阻止電子郵件成功傳遞。
recommendation-more-help
experience-cloud-kcs-help-kbarticles