由于邮件服务或高级网络配置错误,AEM无法发送出站SMTP电子邮件
AEM环境可能无法发送出站电子邮件,日志显示SMTP连接错误(如EmailException或MailConnectException)以及本地工作但在AEM as a Cloud Service上失败的电子邮件。 要修复此问题,请确认您的环境类型,更正邮件服务和高级联网配置,并在日志中验证SMTP连接。
描述 description
环境
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services
- Adobe Experience Manager 6.5(内部部署)
- AEM Forms
问题/症状
- 日志显示SMTP发送失败,如
EmailException: Sending the email to the following server failed。 - 发布日志显示
MailConnectException: Could not connect to the host, port。 - 电子邮件在本地主机上运行,但在AEM as a Cloud Service(开发、暂存或发布)上失败。
- AEM Forms电子邮件端点处理速度低于预期或没有按预期间隔。
根本原因
出站SMTP失败是由于以下一个或多个原因:缺少高级网络端口转发规则(AEMaaCS中所有外部SMTP连接都需要)、错误的OSGi邮件服务值配置(例如,使用直接SMTP端口而不是映射的portOrig)、凭据不正确或AEMaaCS中缺少代码配置或对AEM Forms电子邮件端点中的计划程序和间隔行为理解错误。
重现问题的步骤
- 由于配置路径不同,因此确定环境是内部部署的AEM as a Cloud Service还是AEM 6.5。
- 查看
EmailException或MailConnectException条目的错误日志。 - 在Web控制台(AEM 6.5)中检查邮件服务配置源:
com.day.cq.mailer.DefaultMailService.cfg.json文件(AEMaaCS)或Day CQ邮件服务。 - 对于AEMaaCS,确认高级联网端口转发将您的
portOrig(例如,30465或30587)映射到目标端口(465或587)。
解决方法 resolution
要解决此问题:
- 识别环境类型 — 内部部署的AEM as a Cloud Service或AEM 6.5 — 因为二者的邮件配置不同。
- 查看错误日志。 对于AEMaaCS,请打开Cloud Manager
>环境>日志;对于AEM 6.5,请选中error.log。 搜索EmailException、MailConnectException和proxy.tunnel。 如果未显示相关日志,请在OSGi配置中设置smtp.debug=true。 - 找到邮件服务配置。 对于AEMaaCS,请查看configuration-as-code中的
com.day.cq.mailer.DefaultMailService.cfg.json;对于内部部署,请打开位于/system/console/configMgr的Web控制台,然后选择Day CQ邮件服务。 确认已填充SMTP主机、端口、用户名、密码和SSL值。 如果AEMaaCS中缺少配置,请将其部署为代码。 - 仅对于AEM as a Cloud Service,验证高级联网功能。 确认端口转发将您的
portOrig(例如,30465或30587)映射到目标端口(465或587)。 在OSGi配置中,smtp.host使用代理主机变量(AEM_PROXY_HOST,默认proxy.tunnel),smtp.port使用portOrig值。 如果需要,可在Cloud Manager中更新portForwards配置。 - 仅对于AEM as a Cloud Service,请正确配置SMTP端口和SSL。 对于启用SSL的SMTP(目标端口465),将
smtp.port设置为您映射的30xxx端口和smtp.ssl=true(例如,portOrig30465映射到具有smtp.ssl=true的smtp.port30465)。 - 仅对于AEM as a Cloud Service,验证环境变量。 在 Cloud Manager
>Environment>配置 中,确认EMAIL_USERNAME、EMAIL_PASSWORD和AEM_PROXY_HOST等变量存在且拼写正确,然后在进行任何更改后重新部署。 - 仅对于内部部署的AEM 6.5,请配置Day CQ邮件服务。 在
/system/console/configMgr中,选择 Day CQ Mail Service 并设置SMTP主机、端口25或更高、用户和密码以及非空白发件人地址。 如果更改未生效,请重新启动AEM。 - 仅对于AEM Forms,验证电子邮件端点。 查看重复间隔、批次大小和cron表达式,以便调度程序按预期时间处理批次,并根据需要重新调整设置。
- 通过触发发送电子邮件的功能(表单提交、servlet调用或工作流)测试电子邮件投放。 确认已收到电子邮件,并且日志显示成功的SMTP握手没有
EmailException或MailConnectException。 - 如果电子邮件仍然失败,请联系Adobe支持,并提供显示异常的
error.log代码片段、Day CQ邮件服务配置文件(AEMaaCScfg.json)、SMTP主机和端口映射详细信息,以及是否启用高级联网的确认信息。
相关阅读
recommendation-more-help
experience-cloud-kcs-help-kbarticles