Inviare email in Spring Boot e Java
Spring Boot ha una sua libreria per l'invio delle email.
In questo articolo vediamo come usarla per inviarle tramite SMTP in formato HTML.
Per prima cosa accertatevi di avere la libreria.
Se usate Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Nel file application.properties aggiungete queste righe:
spring.mail.host=HOST
spring.mail.port=PRT
spring.mail.username=USERNAME
spring.mail.password=PASSWORD
spring.mail.properties.mail.transport.protocol=smtp
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.encoding=UTF-8
spring.mail.properties.mail.from.email=EMAIL_FROM
Poi creiamo un servizio:
package com.cies.api.services;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
@Autowired
private JavaMailSender mailSender;
public void send(String from, String to, String subject, String text) {
MimeMessage message = mailSender.createMimeMessage();
try {
message.setFrom(new InternetAddress(from));
message.setRecipients(MimeMessage.RecipientType.TO, to);
message.setSubject(subject);
message.setContent(text, "text/html; charset=utf-8");
mailSender.send(message);
} catch (MessagingException e) {
System.out.println(e.getMessage());
}
}
}
A questo punto non ci resta che richiamarlo:
@Autowired
private EmailService emailService;
...........
emailService.send("FROM", "TO", "SUBJECT", "HTML");
Enjoy!
java maven spring boot email smtp html
Commentami!