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では、実際のAPI キー値に関係なく、認証用にユーザー名をapikeyに設定する必要があります。 ユーザー名またはAPI キーの設定が正しくないと、メール配信が正常に行われない可能性があります。
recommendation-more-help
experience-cloud-kcs-help-kbarticles