Inviare email in Spring Boot e Java

Mattepuffo's logo
Inviare email in Spring Boot e Java

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!


Condividi

Commentami!