AEM as a Cloud Service: SMTP电子邮件投放失败
当邮件服务配置为直接连接到非默认端口上的外部SMTP主机,或者所需的高级联网端口转发配置缺失或不正确时,Adobe Experience Manager as a Cloud Service (AEMaaCS)中的SMTP电子邮件投放可能会失败。 通过为SMTP目标配置高级联网并将Day CQ Mail服务更新为使用代理主机和映射的代理端口来解决问题。
描述 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中,如果使用了非默认的SMTP端口(如465),而没有使用所需的高级联网端口转发配置,或者将邮件服务配置为直接使用外部SMTP主机和目标端口(而不是映射的代理主机和端口),SMTP投放可能会失败。
解决方法 resolution
请尝试以下步骤来解决问题:
-
确保为目标AEM as a Cloud Service程序和环境启用了“高级网络”,并且您具有更新网络和配置所需的权限。
-
在Cloud Manager中,打开相关的程序和环境。 转到 高级网络 并为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.comsmtp.ssl:目标SMTP服务使用端口465时true
-
使用受支持的AEM as a Cloud Service秘密支持配置提供SMTP用户名和密码,而不是在代码中存储文本凭据值。
-
通过标准Cloud Manager部署流程部署更新的配置,然后通过重新运行发送电子邮件的流程并确认连接成功来测试电子邮件投放。