【发布时间】:2016-11-02 23:07:50
【问题描述】:
我正在尝试使用运行在 AWS EC2 Lynx 机器上的 SMTPS 连接器在运行时 Mule 上向 AWS SES 发送一封电子邮件,但我不断收到“无法连接到邮件传输”Mule 异常。
我可以从 EC2 机器 Telnet 到 AWS SES 端点,但无法让 EHLO 工作,我可能在那里做错了什么。 我可以使用相同的 SMTPS 连接器和相同的 AWS SES 凭证从我自己在 Anypoint 上运行我的应用程序的 PC 成功地将电子邮件发送到 AWS SES,因此我知道那里一切正常。
我在想 Anypoint 和 runtime Mule 之间一定有区别?
这是我的连接器代码,是否需要添加信任库才能使其在运行时工作?
<smtps:connector name="SMTPS" contentType="text/html" validateConnections="true" doc:name="SMTPS">
<smtps:tls-client />
<smtps:tls-trust-store />
</smtps:connector>
这是日志的相关部分
INFO org.mule.lifecycle.AbstractLifecycleManager - 初始化:'SMTPS.dispatc her.1395684883'。对象是:SmtpMessageDispatcher 2016-11-08 16:30:25,149 [[feecalculator].HTTP_Listener_Configuration.worker.01] 信息 org.mule.api.security.tls.TlsPropertiesMapper - 将 mule.email.smtp 的信任库默认为客户端密钥库 2016-11-08 16:30:25,361 [[feecalculator].HTTP_Listener_Configuration.worker.01] INFO org.mule.api.security.tls.TlsProperties - 加载配置文件:tls-default.conf 2016-11-08 16:30:25,620 [[feecalculator].HTTP_Listener_Configuration.worker.01] 错误 org.mule.exception.CatchMessagingExceptionStrategy -
消息:无法连接到邮件传输。
元素:/sendEmailFlow/processors/0/0/0 @ feecalculator:sendEmail l.xml:22 (Prod SMTPS)
异常堆栈是: 无法连接到邮件传输。 (org.mule.api.endpoint.EndpointException)
我的本地机器上的区别是'tls-default.conf not found':
INFO 2016-11-08 16:19:16,533 [[feecalculator].HTTP_Listener_Configuration.worker.08] org.mule.lifecycle.AbstractLifecycleManager:初始化:'SMTPS.dispatcher.1555978287'。对象是:SmtpMessageDispatcher INFO 2016-11-08 16:19:16,539 [[feecalculator].HTTP_Listener_Configuration.worker.08] org.mule.api.security.tls.TlsPropertiesMapper:默认 mule.email.smtps 信任库到客户端密钥库 WARN 2016-11-08 16:19:16,574 [[feecalculator].HTTP_Listener_Configuration.worker.08] org.mule.api.security.tls.TlsProperties:未找到文件 tls-default.conf,使用默认配置。 信息 2016-11-08 16:19:20,100 [[feecalculator].HTTP_Listener_Configuration.worker.08] org.mule.lifecycle.AbstractLifecycleManager:开始:'SMTPS.dispatcher.1555978287'。对象为:SmtpMessageDispatcher
【问题讨论】:
-
谢谢迈克尔,smpts 端口必须是 465 或 2465 我不能使用 25,所以它没有被限制,这也不能解释为什么连接在我的本地机器上工作,但在 EC2 上却没有相同的 smtps设置和凭据
-
我想你得到了一个例外。你能发布你的日志吗?如果是 TSL,您需要在 mule 中建立信任库,或者在您的 pc 上的 jvm 级别的 cacert 中信任证书。
-
嗨 Mauro 我怀疑这一定是证书问题,我猜我本地机器上的 cacert 是可信的,而 EC2 服务器不可信,你知道我如何证明这一点吗?我明天会发布异常日志
-
我已将日志的相关部分添加到我原来的问题中
标签: amazon-ec2 runtime mule amazon-ses smtps