メールサービス
AEM の DefaultMailService
を高度なネットワークエグレスポートを使用するように設定して、AEM as a Cloud Service からメールを送信します。
(ほとんどの)メールサービスは HTTP/HTTPS 経由で実行されないので、AEM as a Cloud Service からメールサービスへの接続はプロキシ化する必要があります。
-
smtp.host
は OSGi 環境変数$[env:AEM_PROXY_HOST;default=proxy.tunnel]
に設定されているので、エグレスを通過します。$[env:AEM_PROXY_HOST]
は、AEM as a Cloud Service が内部proxy.tunnel
ホストにマッピングする予約変数です。AEM_PROXY_HOST
を Cloud Manager 経由で設定しようとしないでください。
-
smtp.port
は、宛先のメールサービスのホストおよびポートにマッピングするportForward.portOrig
ポートに設定されています。この例では、次のマッピングを使用します。AEM_PROXY_HOST:30465
→smtp.sendgrid.com:465
smpt.port
はportForward.portOrig
ポートに設定されています。SMTP サーバーの実際のポートではありません。smtp.port
とportForward.portOrig
ポート間のマッピングは Cloud Manager のportForwards
ルールによって確立されます(実際の例が後述されています)。
秘密鍵はコードに格納できないので、メールサービスのユーザー名とパスワードは秘密鍵の OSGi 設定変数を使用して指定するのが最善で、AIO CLI または Cloud Manager API を使用して設定されます。
通常、フレキシブルポートエグレスは、メールサービスとの統合を満たすために使用されます。ただし、Adobe IP を allowlist
することが必要な場合は別で、この場合は専用のエグレス IP アドレスを使用できます。
さらに、メールの送信に関する AEM ドキュメントを確認します。
高度なネットワーク機能のサポート
次のコードサンプルは、以下の高度なネットワーク機能オプションでサポートされています。
このチュートリアルを開始する前に、高度なネットワーク機能の設定が適切にセットアップされていることを確認してください。
OSGi 設定
この OSGi 設定の例では、以下の Cloud Manager の enableEnvironmentAdvancedNetworkingConfiguration 操作の portForwards
ルールを使用する方法によって、AEM の Mail OSGi Service を外部のメールサービスを使用するように設定しています。
...
"portForwards": [{
"name": "smtp.mymail.com",
"portDest": 465,
"portOrig": 30465
}]
...
ui.config/src/jcr_root/apps/wknd-examples/osgiconfig/config/com.day.cq.mailer.DefaultMailService.cfg.json
AEM の DefaultMailService を、メールプロバイダーに要求されている通りに設定します(例:smtp.ssl
など)。
{
"smtp.host": "$[env:AEM_PROXY_HOST;default=proxy.tunnel]",
"smtp.port": "30465",
"smtp.user": "$[env:EMAIL_USERNAME;default=myApiKey]",
"smtp.password": "$[secret:EMAIL_PASSWORD]",
"from.address": "noreply@wknd.site",
"smtp.ssl": true,
"smtp.starttls": false,
"smtp.requiretls": false,
"debug.email": false,
"oauth.flow": false
}
EMAIL_USERNAME
および EMAIL_PASSWORD
OSGi 変数と秘密鍵は、次のいずれかを使用して、環境ごとに設定できます。
-
または
aio CLI
コマンドの使用code language-shell $ aio cloudmanager:set-environment-variables --programId=<PROGRAM_ID> <ENVIRONMENT_ID> --secret EMAIL_USERNAME "myApiKey" --secret EMAIL_PASSWORD "password123"