繁体   English   中英

如何解决 java.net.SocketException:Connection reset。 失败的消息:javax.mail.MessagingException:无法连接到 SMTP 主机

[英]How to resolve java.net.SocketException:Connection reset. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host

我正在尝试使用组织的 SMTP 主机发送电子邮件。

@Autowired
 private JavaMailSender mailSender;
@Autowired
 private VelocityEngine velocityEngine;
@Autowired
 private SimpleMailMessage templateMessage;


public void emailSender(final User user) throws Exception 
{

    SimpleMailMessage message = new SimpleMailMessage();

    message.setFrom(templateMessage.getFrom());
    message.setTo(user.getEmail());
    System.out.println(user.getEmail());

    message.setSubject(templateMessage.getSubject());
    System.out.println(templateMessage.getSubject());

    message.setText("Your new password is "+ user.getPassword());
    System.out.println("Your new password is "+ user.getPassword());

    mailSender.send(message);
    System.out.println(message);

}

配置

 <bean id="emailSender" class="org.iti.utility.SendEmail">
        <property name="mailSender" ref="mailSender" /> 
        <property name="velocityEngine" ref="velocityEngine" /> 
        <property name="templateMessage" ref="templateMessage" /> 
    </bean> 

  <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="10.6.12.229" />
        <property name="port" value="389" /> 
        <property name="javaMailProperties">
            <props>
                <prop key="mail.debug">true</prop> 
                <prop key="mail.smtps.starttls.enable">true</prop>
                <prop key="mail.transport.protocol">smtps</prop>
            </props>
        </property>
    </bean>      
     <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
        <property name="velocityProperties">
        <value>resource.loader=class class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</value> 
        </property>
    </bean>  
    <bean id="templateMessage" class="org.springframework.mail.SimpleMailMessage">
        <property name="from" value="noreply@scrumtracker.com" /> 
        <property name="subject" value="Scrum Tracker Login Details" /> 
    </bean>

堆栈跟踪

DEBUG SMTP: trying to connect to host "10.6.12.229", port 389, isSSL true
Nov 23, 2015 4:16:29 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [spring] in context with path [/OLPV] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: 10.6.12.229, port: 389;
  nested exception is:
    java.net.SocketException: Connection reset. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: 10.6.12.229, port: 389;
  nested exception is:
    java.net.SocketException: Connection reset; message exceptions (1) are:
Failed message 1: javax.mail.MessagingException: Could not connect to SMTP host: 10.6.12.229, port: 389;
  nested exception is:
    java.net.SocketException: Connection reset] with root cause
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.security.ssl.InputRecord.readFully(Unknown Source)
    at sun.security.ssl.InputRecord.read(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:548)
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:352)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1938)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
    at javax.mail.Service.connect(Service.java:295)
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:306)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:296)
    at org.iti.utility.SendEmail.emailSender(SendEmail.java:188)
    at org.iti.controller.UserController.forgetPassword(UserController.java:101)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我看到它正在尝试连接到主机和主机“10.6.12.229”,端口 389,isSSL true。 但我得到了上述例外。 对此有什么想法吗? 提前致谢。

尝试使用具有此设置的某些邮件应用程序(例如 Thunderbird)并发送电子邮件。 我认为问题出在配置上。

1)您确认您已经配置正确的端口?

端口 389 旨在供 LDAP 使用。

SMTP 通常使用端口:25 (smtp)、465(smtps) 和 587 (msa/submission)

您的配置:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="port" value="389" /> 

2) 您是否收到 SMTP 问候信息?

使用telnet host-name port-number进行测试。 除非服务使用 SMTPS(SMTP 级别通信之前启动 SSL 加密),否则您应该收到 SMTP 问候。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM