AEM as a Cloud Service SMTP电子邮件无法正常工作或无法配置
AEM as a Cloud Service不包含SMTP服务器,并且无法连接到内部或AMS SMTP主机,因此当客户希望使用内置服务器或尝试使用公司中继或旧版中继时,电子邮件会失败。 所有出站电子邮件都必须通过客户提供的通过高级网络路由的经过身份验证的公共SMTP提供商,并且沙盒环境不支持高级网络,因此SMTP无法在该环境中运行。 选择外部SMTP提供商、配置高级网络端口转发并添加邮件服务OSGi配置可启用从暂存环境和生产环境的电子邮件投放。
描述 description
环境:
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- AEM Assets Essentials
- Cloud Manager(高级联网)
- 暂存和生产环境(沙盒和RDE不支持高级联网)
问题/症状:
- 电子邮件在本地主机上运行,但在AEM Cloud上失败,当代码部署到创作或发布时,出现500错误。
- 无法完成SMTP配置,因为客户希望Adobe提供SMTP服务器。
- 无法在沙盒环境中发送电子邮件,因为沙盒环境不支持高级网络。
- 尝试使用仅限内部的SMTP服务器失败,因为AEMaaCS需要经过公共身份验证的SMTP端点。
根本原因:
AEM as a Cloud Service不提供SMTP服务器,并且无法连接到内部SMTP主机。 所有出站电子邮件必须使用客户提供的通过“高级联网”路由的公共外部SMTP提供商。 沙盒环境不支持高级网络,因此在该环境中无法使用SMTP。 尝试使用AMS提供的非SLA SMTP服务器失败,因为它们无法从AEMaaCS Kubernetes环境访问。
如何确认
- 确定环境是否支持SMTP。 确定环境是沙盒、RDE、暂存还是生产。 沙盒或RDE上不支持SMTP,因此测试必须在暂存或生产级别环境中进行。
- 确认目标的SMTP端点为外部和公共端点。 AEMaaCS无法访问内部或AMS SMTP主机,因此无论配置如何,仅内部服务器都将无法正常工作。
解决方法 resolution
请按照以下步骤解决问题:
-
选择并准备外部SMTP提供程序。 选择经过身份验证的公共SMTP提供程序,并获取其主机、端口、用户名和密码。 这些凭据来自您的电子邮件提供商 — Adobe不提供SMTP凭据。
-
在Cloud Manager中配置高级联网功能。 创建
portForwards,其中portOrig设置为 30000-30999 范围,且portDest设置为 465 或587(具体取决于您的SMTP提供商)。 确认Cloud Manager管道JSON包含portForwards块。 -
将邮件服务OSGi配置添加到存储库。 使用以下值创建
ui.config/src/jcr_root/apps/<project>/osgiconfig/config/com.day.cq.mailer.DefaultMailService.cfg.json:smtp.host= $[env:AEM_PROXY_HOST;default=proxy.tunnel]smtp.port=上一步的portOrig值(例如: 30465或30587)- 使用端口465时,
smtp.ssl= true;或使用端口587时,false
-
通过Cloud Manager重新部署。 运行完整部署管道,然后打开
/system/console/configMgr(只读,但在AEMaaCS上可见)并确认com.day.cq.mailer.DefaultMailService反映配置的值。 -
验证SMTP连接。 触发AEM工作流电子邮件或通过自定义servlet发送电子邮件,然后检查SMTP提供商日志中是否存在经过身份验证的连接。 如果阻止投放,请检查提供程序是否因DKIM/DMARC而拒绝投放,该操作在SMTP提供程序级别处理,而不是在AEM中处理。
验证
- 确认从AEM发送的电子邮件是否显示在SMTP提供商的仪表板日志中。
- 确认Day CQ邮件服务在OSGi控制台的 30000-30999 范围内显示
smtp.host= proxy.tunnel和smtp.port。 - 确认AEM
error.log未显示SMTP连接错误。