【问题标题】:WSO2 mailto transport. Could not connect to SMTP host: smtp.gmail.com, port: 587WSO2 邮件传输。无法连接到 SMTP 主机:smtp.gmail.com,端口:587
【发布时间】: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)

标签: wso2 mailto wso2ei


【解决方案1】:

我在 SMTP 配置方面也遇到了很多麻烦。我认为目前错误的是用户。当我尝试配置它时,用户也必须是完整的电子邮件。

<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@gmail.com</parameter>
        <parameter name="mail.smtp.password">***</parameter>
       <parameter name="mail.smtp.from">sendmail@gmail.com</parameter>
</transportSender>

让我知道这是否对你有用,否则它可能只是一些防火墙问题。

【讨论】:

    猜你喜欢
    • 2013-08-21
    • 2020-04-23
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2016-12-01
    • 2011-11-01
    相关资源
    最近更新 更多