AEM as a Cloud Service:使用自定义OSGi服务时,出现SendGrid API电子邮件投放问题

本文提供了一些步骤,以解决通过SendGrid API从Adobe Experience Manager as a Cloud Service中的自定义OSGi服务发送电子邮件时出现的问题。

描述 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