Не удалось подключиться к порту хоста: smtp.gmail.com 22. Хотя у меня установлен порт 465 в application.properties - PullRequest
0 голосов
/ 16 апреля 2020

My 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 голосов
/ 16 апреля 2020

Есть несколько моментов, над которыми нужно работать.

  1. Удалите пароль электронной почты из вопроса, чтобы кто-то не мог его неправильно использовать.

  2. Включите менее безопасные приложения в Gmail здесь

  3. Существует еще один порт 587, который вы можете использовать для SMTP.

  4. Включить TLS см. это

0 голосов
/ 17 апреля 2020

Попробуйте Советы по отладке соединения JavaMail FAQ . Скорее всего, у вас есть брандмауэр или антивирус, который не позволяет подключиться.

0 голосов
/ 16 апреля 2020

Измените номер почтового порта с 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...