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

問題を解決するには、次の手順を試してください。

  1. ターゲットのAEM as a Cloud Service プログラムと環境でアドバンストネットワークが有効になっており、ネットワークと設定を更新するために必要な権限があることを確認します。

  2. Cloud Managerで、関連するプログラムと環境を開きます。 Advanced Networkingに移動し、SMTP サービスのフレキシブル ポート エグレス ルールを設定します。 次の例と同様のルールを使用して、ホスト名とポートをSMTP プロバイダーで必要な値に置き換えます。 環境に適したportOrig値を文書化された範囲内で使用します。 設定を保存して環境に適用します。

    code language-json
    {
      "nonProxyHosts": [ ] ,
      "portForwards": [
        {
          "name": "smtp.example.com",
          "portDest": 465,
          "portOrig": 30465
        }
      ]
    }
    
  3. 外部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
  4. コードにリテラル資格情報の値を保存するのではなく、AEM as a Cloud Serviceでサポートされているシークレットでサポートされている設定を使用して、SMTP ユーザー名とパスワードを指定します。

  5. 標準のCloud Manager デプロイメントプロセスを通じて更新された設定をデプロイし、メールを送信するプロセスを再実行して、接続が成功したことを確認してメール配信をテストします。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles