Captai-N
Captai-N

Reputation: 1514

Send Spring Boot simple email

I'm trying to send an email using Spring Boot. However, I get the error below in the console. I try the whole thing with GMX as email provider

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.mail.MailSendException: Mail server connection failed. Failed messages: javax.mail.MessagingException: Could not convert socket to TLS; nested exception is: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate); message exceptions (1) are: Failed message 1: javax.mail.MessagingException: Could not convert socket to TLS; nested exception is: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)] with root cause

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

Main Code:

@Autowired
private JavaMailSender javaMailSender;


private void sendMail() {
    
     SimpleMailMessage msg = new SimpleMailMessage();
     msg.setTo("[email protected]", "[email protected]", "[email protected]");

     msg.setSubject("Testing from Spring Boot");
     msg.setText("Hello World \n Spring Boot Email");

     javaMailSender.send(msg);
   
}

pom.xml

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>5.2.8.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

application.properties file:

 spring.mail.protocol=smtp
 spring.mail.host=mail.gmx.net
 spring.mail.properties.mail.smtp.ssl.trust=mail.gmx.net
 spring.mail.port=587
 [email protected]
 spring.mail.password=xyz
 # Other properties
 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
 # TLS , port 587
spring.mail.properties.mail.smtp.starttls.enable=true

Upvotes: 0

Views: 1395

Answers (1)

user23190727
user23190727

Reputation: 1

Change

spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000

with

spring.mail.properties.mail.smtp.connectiontimeout=10000
spring.mail.properties.mail.smtp.timeout=10000
spring.mail.properties.mail.smtp.writetimeout=10000

Upvotes: -1

Related Questions