AEM as a Cloud Service:SMTP メール配信が失敗する
メールサービスがデフォルト以外のポートで外部SMTP ホストに直接接続するように設定されている場合、または必要なアドバンストネットワークポート転送設定が欠落または正しくない場合、Adobe Experience Manager as a Cloud Service(AEMaaCS)でSMTP メール配信が失敗する可能性があります。 この問題を解決するには、SMTP宛先にアドバンストネットワークを設定し、Day CQ Mail Serviceを更新して、プロキシホストとマッピングされたプロキシポートを使用します。
説明 description
環境
Adobe Experience Manager as a Cloud Service(すべてのバージョン)
問題/症状
ロールアウトジョブや非同期タスクなど、SMTPを介してメールを送信しようとすると、メール配信が失敗します。 次のエラーがログに記録されます。
Caused by: org.apache.commons.mail.EmailException: Sending the email to the following server failed : your-smtp-host:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1298) [ org.apache.commons.commons-email:1.6.0]
...
Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: your-smtp-host, 465; timeout 60000
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209) [ com.sun.mail.javax.mail:1.6.2]
...
Caused by: java.net.SocketTimeoutException: Connect timed out
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:546)
- SMTPを使用するジョブまたはプロセスのメール送信が失敗します。
- メールサービスがポート 465でSMTP サーバーに接続しようとすると、ログに接続タイムアウトが表示されます。
- Day CQ メールサービスの設定を確認して、AEM as a Cloud Serviceが外部SMTP ホストとポートに直接接続するのではなく、必要なプロキシホストとマッピングされたプロキシポートを使用していることを確認する必要があります。
根本原因
AEM as a Cloud Serviceでは、465などのデフォルト以外のSMTP ポートが必要なAdvanced Networking port-forwarding設定なしで使用されている場合、またはメールサービスがマッピングされたプロキシホストとポートではなく、外部SMTP ホストと宛先ポートを直接使用するように設定されている場合、SMTP配信が失敗する可能性があります。
解決策 resolution
問題を解決するには、次の手順を試してください。
-
ターゲットのAEM as a Cloud Service プログラムと環境でアドバンストネットワークが有効になっており、ネットワークと設定を更新するために必要な権限があることを確認します。
-
Cloud Managerで、関連するプログラムと環境を開きます。 Advanced Networkingに移動し、SMTP サービスのフレキシブル ポート エグレス ルールを設定します。 次の例と同様のルールを使用して、ホスト名とポートをSMTP プロバイダーで必要な値に置き換えます。 環境に適した
portOrig値を文書化された範囲内で使用します。 設定を保存して環境に適用します。code language-json { "nonProxyHosts": [ ] , "portForwards": [ { "name": "smtp.example.com", "portDest": 465, "portOrig": 30465 } ] } -
外部SMTP ホストとポートに直接接続するのではなく、プロキシホストとマッピングされたプロキシポートを使用するようにメールサービスを設定します。 次の値を使用します。
smtp.host:$[ env:AEM_PROXY_HOST;default=proxy.tunnel]smtp.port:<mapped-port>(または上記で設定したportOrig値)smtp.user: SMTP ユーザー名の秘密鍵で指定された値smtp.password: SMTP パスワードの秘密鍵で指定された値from.address:有効な送信者アドレス (例:no-reply@example.com)- 宛先SMTP サービスがポート
465を使用する場合、smtp.ssl:true
-
コードにリテラル資格情報の値を保存するのではなく、AEM as a Cloud Serviceでサポートされているシークレットでサポートされている設定を使用して、SMTP ユーザー名とパスワードを指定します。
-
標準のCloud Manager デプロイメントプロセスを通じて更新された設定をデプロイし、メールを送信するプロセスを再実行して、接続が成功したことを確認してメール配信をテストします。