【问题标题】:EmailSender Exception reading responseEmailSender 异常读取响应
【发布时间】:2019-07-01 03:21:01
【问题描述】:

我相信我已正确遵循本网站https://vandeneyndefilip.nu/spring-boot/spring-boot-sending-email/ 的指导方针,但我收到了异常阅读回复。

我试图在互联网上找到解决问题的方法,我只能将端口从 465 更改为 587。不幸的是,我从一开始就使用了 587 端口

  1. 这是我的 application.properties
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=myemail@gmail.com
spring.mail.password=mypassword
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000
  1. 这是我的实现
            String jsonData = user.toJson();

            System.out.println(jsonData);
            byte[] arrayBlob = blobTemplate.getBytes(1, (int) blobTemplate.length());
            String data = new String(arrayBlob);

            String newData = MustacheProcessor.mustacheProcess(data, jsonData);

            SimpleMailMessage message = new SimpleMailMessage();
            message.setTo(user.getEmail());
            message.setSubject(template.getSubject());
            message.setText(newData);

            emailSender.send(message);
        } catch (MailException e) {
            e.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

我尝试查看这条线路上的数据传输,一切都很好

            message.setTo(user.getEmail());
            message.setSubject(template.getSubject());
            message.setText(newData);

我已阅读跟踪,发送电子邮件时似乎有问题

emailSender.send(message);

  1. 这是一半的痕迹
  nested exception is:
    java.net.SocketException: Connection reset. Failed messages: javax.mail.MessagingException: Exception reading response;
  nested exception is:
    java.net.SocketException: Connection reset; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Exception reading response;
  nested exception is:
    java.net.SocketException: Connection reset
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2460)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2187)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
    at javax.mail.Service.connect(Service.java:366)
    at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:517)
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:436)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:322)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:311)
    at com.sender.tugaskp2.tugaskp2.service.impl.EmailServiceImp.sendSinglePayslip(EmailServiceImp.java:55)
    at com.sender.tugaskp2.tugaskp2.controller.EmailController.sendSinglePayslip(EmailController.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)

【问题讨论】:

    标签: java spring-boot


    【解决方案1】:

    我已通过更换我使用的网络并为我的电子邮件激活不太安全的应用程序访问来解决此问题。我不确定这是解决这个问题的最合适的答案。

    我从这个链接得到了答案 https://www.mkyong.com/spring-boot/spring-boot-how-to-send-email-via-smtp/

    祝你有美好的一天

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多