【发布时间】:2021-01-12 02:40:03
【问题描述】:
我尝试使用 wso2 邮件发送电子邮件进行传输,但收到此错误
[2021-01-08 09:46:48,133] [EI-Core] INFO - TimeoutHandler This engine will expire all callbacks after GLOBAL_TIMEOUT: 120 seconds, irrespective of the timeout action, after the specified or optional timeout
[2021-01-08 09:48:55,485] [EI-Core] ERROR - MailTransportSender Error creating mail message or sending it to the configured server
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
nested exception is:
java.net.ConnectException: Connection timed out (Connection timed out)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at org.apache.axis2.transport.mail.MailTransportSender.sendMail(MailTransportSender.java:520)
at org.apache.axis2.transport.mail.MailTransportSender.sendMessage(MailTransportSender.java:182)
at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
at org.apache.axis2.engine.AxisEngine$TransportNonBlockingInvocationWorker.run(AxisEngine.java:626)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 13 more
[2021-01-08 09:48:55,493] [EI-Core] ERROR - MailTransportSender Error generating mail message
org.apache.axis2.AxisFault: Error creating mail message or sending it to the configured server
at org.apache.axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:229)
at org.apache.axis2.transport.mail.MailTransportSender.sendMail(MailTransportSender.java:531)
at org.apache.axis2.transport.mail.MailTransportSender.sendMessage(MailTransportSender.java:182)
at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
at org.apache.axis2.engine.AxisEngine$TransportNonBlockingInvocationWorker.run(AxisEngine.java:626)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
nested exception is:
java.net.ConnectException: Connection timed out (Connection timed out)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at org.apache.axis2.transport.mail.MailTransportSender.sendMail(MailTransportSender.java:520)
... 6 more
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 13 more
[2021-01-08 09:48:55,498] [EI-Core] INFO - AxisEngine [MessageContext: logID=ee60111e2cfd2756410df0877d7ff1cd768edb7f3087b9f9] Error generating mail message
这里是axist2设置
<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
<parameter name="mail.smtp.host">smtp.gmail.com</parameter>
<parameter name="mail.smtp.port">587</parameter>
<parameter name="mail.smtp.starttls.enable">true</parameter>
<parameter name="mail.smtp.auth">true</parameter>
<parameter name="mail.smtp.user">sendmail</parameter>
<parameter name="mail.smtp.password">***</parameter>
<parameter name="mail.smtp.from">sendmail@gmail.com</parameter>
</transportSender>
EmailTemplate.xml
<?xml version="1.0" encoding="UTF-8"?>
<template name="EmailTemplate" xmlns="http://ws.apache.org/ns/synapse">
<parameter name="subject"/>
<parameter name="toAddress"/>
<sequence>
<property expression="$func:subject" name="Subject" scope="transport" type="STRING"/>
<property name="ContentType" scope="axis2" type="STRING" value="text/html"/>
<property name="messageType" value="text/html" scope="axis2"/>
<property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
<property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/>
<property expression="fn:concat('mailto:',$ctx:email)" name="emailEP" scope="default" type="STRING"/>
<header expression="get-property('emailEP')" name="To" scope="default"/>
<send>
<endpoint>
<default/>
</endpoint>
</send>
</sequence>
</template>
我使用activemq来触发消息,这里是邮件代理
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="UserMgtCreateEmailSender" startOnLoad="true" transports="jms" xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence>
<property name="emailSubject" scope="default" type="STRING" value="Test Email Subject"/>
<property expression="json-eval($.email)" name="email" scope="default" type="STRING"/>
<xslt key="conf:xsl/email-body-xslt.xslt"/>
<call-template target="EmailTemplate">
<with-param name="subject" value="{$ctx:emailSubject}"/>
</call-template>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.jms.DestinationType">queue</parameter>
<parameter name="transport.jms.Destination">sendemail.user</parameter>
<parameter name="transport.jms.ContentType">
<rules xmlns="">
<jmsProperty>contentType</jmsProperty>
<default>application/json</default>
</rules>
</parameter>
<parameter name="transport.jms.ConnectionFactory">myQueueConnectionFactory</parameter>
</proxy>
这是 email-body-xslt.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<html>
<body>
<p>Service Name: Test Proxy</p>
<p>Execution success</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我发送到队列的消息是目标电子邮件
{
"email":"username@gmail.com"
}
这段代码工作了好几次,但突然出现这样的错误。我不知道是什么原因。请帮忙。我是 wso2 的新手。
【问题讨论】:
-
您确定您的服务器能够访问互联网吗?这看起来与 WSO2 或您的配置没有任何关系,它看起来无法与服务器连接 ->
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)