我正在尝试在参与者步骤中发送电子邮件。我写了一封电子邮件服务,它使用Message Gateway发送电子邮件。
但MessageGateway messageGateway = this.messageGatewayService.getGateway(Email.class);这一行将messageGateway作为null。
我浏览了很多帖子,并且在任何地方都提到如果在Day Cq邮件服务中没有正确提及SMTP详细信息,则它将显示为空。
但我已正确配置它,因为如果我在动态步骤中选择了senEmail复选框,则AEM可以使用此功能发送默认电子邮件。所以我确信SMTP不是可能有问题的。我们还需要其他东西,以便messageGateway不会变为空。我正在使用AEM 6.1 SP3。
谢谢,
图莎尔
答案 0 :(得分:0)
在环境中重新启动 com.day.cq.cq-mailer 包是对我有用的解决方案。
MessageGatewayService 包含一个 hashSet 网关。如果您删除或移动 Day CQ 邮件服务配置,则会向 hashSet 添加一个新网关。 messageGatewayService.getGateway() 仅从 hashSet 中检索一个 DefaultMailService,它可能是一个内部带有 cfg null 的服务,尽管存在一个配置正确的服务。清理它的唯一方法是重新启动包。
对 DefaultMailService 配置的任何后续更新都可以正常工作。这仅在您删除/移动环境中的配置时发生。