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
-
验证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