由于邮件服务或高级网络配置错误,AEM无法发送出站SMTP电子邮件

AEM环境可能无法发送出站电子邮件,日志显示SMTP连接错误(如EmailExceptionMailConnectException)以及本地工作但在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。
  • 查看EmailExceptionMailConnectException条目的错误日志。
  • 在Web控制台(AEM 6.5)中检查邮件服务配置源: com.day.cq.mailer.DefaultMailService.cfg.json文件(AEMaaCS)或Day CQ邮件服务
  • 对于AEMaaCS,确认高级联网端口转发将您的portOrig(例如,30465或30587)映射到目标端口(465或587)。

解决方法 resolution

要解决此问题:

  1. 识别环境类型 — 内部部署的AEM as a Cloud Service或AEM 6.5 — 因为二者的邮件配置不同。
  2. 查看错误日志。 对于AEMaaCS,请打开Cloud Manager > 环境> 日志;对于AEM 6.5,请选中error.log。 搜索EmailExceptionMailConnectExceptionproxy.tunnel。 如果未显示相关日志,请在OSGi配置中设置smtp.debug=true
  3. 找到邮件服务配置。 对于AEMaaCS,请查看configuration-as-code中的com.day.cq.mailer.DefaultMailService.cfg.json;对于内部部署,请打开位于/system/console/configMgr的Web控制台,然后选择Day CQ邮件服务。 确认已填充SMTP主机、端口、用户名、密码和SSL值。 如果AEMaaCS中缺少配置,请将其部署为代码。
  4. 仅对于AEM as a Cloud Service,验证高级联网功能。 确认端口转发将您的portOrig(例如,30465或30587)映射到目标端口(465或587)。 在OSGi配置中,smtp.host使用代理主机变量(AEM_PROXY_HOST,默认proxy.tunnel),smtp.port使用portOrig值。 如果需要,可在Cloud Manager中更新portForwards配置。
  5. 仅对于AEM as a Cloud Service,请正确配置SMTP端口和SSL。 对于启用SSL的SMTP(目标端口465),将smtp.port设置为您映射的30xxx端口和smtp.ssl=true(例如,portOrig30465映射到具有smtp.ssl=truesmtp.port30465)。
  6. 仅对于AEM as a Cloud Service,验证环境变量。 在 Cloud Manager > Environment >配置 中,确认EMAIL_USERNAMEEMAIL_PASSWORDAEM_PROXY_HOST等变量存在且拼写正确,然后在进行任何更改后重新部署。
  7. 仅对于内部部署的AEM 6.5,请配置Day CQ邮件服务。 在/system/console/configMgr中,选择 Day CQ Mail Service 并设置SMTP主机、端口25或更高、用户和密码以及非空白发件人地址。 如果更改未生效,请重新启动AEM。
  8. 仅对于AEM Forms,验证电子邮件端点。 查看重复间隔、批次大小和cron表达式,以便调度程序按预期时间处理批次,并根据需要重新调整设置。
  9. 通过触发发送电子邮件的功能(表单提交、servlet调用或工作流)测试电子邮件投放。 确认已收到电子邮件,并且日志显示成功的SMTP握手没有EmailExceptionMailConnectException
  10. 如果电子邮件仍然失败,请联系Adobe支持,并提供显示异常的error.log代码片段、Day CQ邮件服务配置文件(AEMaaCS cfg.json)、SMTP主机和端口映射详细信息,以及是否启用高级联网的确认信息。

相关阅读

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