无法连接到主机端口:smtp.gmail.com 22.即使我在application.properties上设置了端口465,

时间:2020-04-16 18:52:13

标签: spring-boot maven jakarta-mail

我的application.properties:

#E-mail properties Gmail
spring.mail.host=smtp.gmail.com
spring.mail.username=derp@gmail.com
spring.mail.password=DERP
spring.mail.port=465
spring.mail.properties.mail.smtp.auth=true

我的EmailSender方法(在此部分添加了属性,以查看它是否可以正常工作,

public void sendEmail(String title, String message, String email) {
        final Properties props = new Properties();
        props.put("spring.mail.port","465");
        SimpleMailMessage msg = new SimpleMailMessage();
        msg.setTo(email);

        msg.setSubject(title);
        msg.setText(message);
        try {

        } catch (Exception e) {
            log.warn("Erro ao enviar o email para:" + email);
        }
        javaMailSender.send(msg);

    }

我认为我的应用程序由于某种原因无法访问application.properties,但是由于我从数据库中获取值,因此我很确定它是可访问的。我所做的所有搜索最终都会导致使用错误端口或类似内容的人使用。发件人在另一个项目中,我有MailSenderCore和一个执行其他逻辑的项目,所以我认为是因为这个原因,并尝试将application.properties添加到两个项目中只是为了对其进行测试,但仍然存在相同的错误。

这是我的日志:

  nested exception is:
    java.net.ConnectException: Connection timed out (Connection timed out). Failed messages: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 25; timeout -1;
  nested exception is:
    java.net.ConnectException: Connection timed out (Connection timed out)
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:448) ~[spring-context-support-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:323) ~[spring-context-support-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:312) ~[spring-context-support-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at com.sippulse.email.core.SipPulseEmailServiceImpl.sendEmail(SipPulseEmailServiceImpl.java:89) ~[SipPulseEmailCore-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
    at com.sippulse.email.lowcredit.SipPulseEmailLowCredit.SipPulseEmailLowCreditApplication.applicationRunner(SipPulseEmailLowCreditApplication.java:50) [classes/:na]
    at com.sippulse.email.lowcredit.SipPulseEmailLowCredit.SipPulseEmailLowCreditApplication$$EnhancerBySpringCGLIB$$6db9b225.CGLIB$applicationRunner$0(<generated>) ~[classes/:na]
    at com.sippulse.email.lowcredit.SipPulseEmailLowCredit.SipPulseEmailLowCreditApplication$$EnhancerBySpringCGLIB$$6db9b225$$FastClassBySpringCGLIB$$f2946bba.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at com.sippulse.email.lowcredit.SipPulseEmailLowCredit.SipPulseEmailLowCreditApplication$$EnhancerBySpringCGLIB$$6db9b225.applicationRunner(<generated>) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_242]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    ... 20 common frames omitted
Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 25; timeout -1
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209) ~[jakarta.mail-1.6.4.jar:1.6.4]
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:722) ~[jakarta.mail-1.6.4.jar:1.6.4]
    at javax.mail.Service.connect(Service.java:342) ~[jakarta.mail-1.6.4.jar:1.6.4]
    at org.springframework.mail.javamail.JavaMailSenderImpl.connectTransport(JavaMailSenderImpl.java:518) ~[spring-context-support-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:437) ~[spring-context-support-5.2.3.RELEASE.jar:5.2.3.RELEASE]
    ... 34 common frames omitted
Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_242]
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_242]
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_242]
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_242]
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_242]
    at java.net.Socket.connect(Socket.java:607) ~[na:1.8.0_242]
    at java.net.Socket.connect(Socket.java:556) ~[na:1.8.0_242]
    at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:335) ~[jakarta.mail-1.6.4.jar:1.6.4]
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:214) ~[jakarta.mail-1.6.4.jar:1.6.4]
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2160) ~[jakarta.mail-1.6.4.jar:1.6.4]
    ... 38 common frames omitted

3 个答案:

答案 0 :(得分:0)

将邮件端口号从465更改为587,然后启用TLS

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=derp@gmail.com
spring.mail.password=DERP
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

答案 1 :(得分:0)

没有什么要处理的。

  1. 从问题中删除电子邮件的密码,以免他人误用。

  2. 在Gmail here

  3. 上启用安全性较低的应用
  4. 还有一个用于SMTP的端口587。

  5. 启用TLS参考this

答案 2 :(得分:0)

尝试TextViewCompat。很可能您有防火墙或防病毒软件阻止了您的连接。