Inicio Blog Cursos

Enviar email con Spring


author_post
José Luis Guisado
Ayuda a mantener este blog activo Donar

En este artículo, aprenderemos a enviar correos con una cuenta gmail desde nuestra aplicación spring boot, ¡En menos de 3 minutos!

Descargando dependencia para el envío de email

Para comenzar, mediante maven, instalaremos la dependencia que nos proveera de las clases para el envío de email. Nos dirigimos a nuestro archivo pom.xml, añadiremos esta dependecia y compilaremos:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

Configurando el archivo de propiedades

Ahora, nos dirigimos al archivo application.properties dónde añadiremos la configuración para el envío de emails:

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.protocol=smtp
spring.mail.username=tucorreo@gmail.com
spring.mail.password=lacontraseñadetucorreo
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.quitwait=false

Servicio de envió de emails

Por último, crearemos un servicio, que será lo utilizaremos para enviar correos desde nuestra aplicación spring, SendEmail.java:

@Service
public class EnvioEmail {


    //Importante hacer la inyección de dependencia de JavaMailSender:
    @Autowired
    private JavaMailSender mailSender;

    //Pasamos por parametro: destinatario, asunto y el mensaje
    public void sendEmail(String to, String subject, String content) {

        SimpleMailMessage email = new SimpleMailMessage();

        email.setTo(to);
        email.setSubject(subject);
        email.setText(content);
       
        mailSender.send(email);
    }
}

De ésta forma, ya tendríamos listo nuestro servicio de envios de correos.

Un ejemplo de uso de esta funcionalidad, podría ser, enviar un mensaje a todos los clientes de la aplicación, y lo podríamos hacer de esta forma:

 public void sendEmail(List<Clients> listClients, String subject, String content) {

        for (Clients c : listClients) 
        { 
            SimpleMailMessage email = new SimpleMailMessage();
            
            //recorremos la lista y enviamos a cada cliente el mismo correo
            email.setTo(c.getEmail());
            email.setSubject(subject);
            email.setText(content);
            
            mailSender.send(email);
        }
    }

Modificando el parámetro to, por una lista de clientes que se recorrera y obtendremos el email de cada cliente.

¡No te pierdas nuevas entradas! Sí­guenos en nuestras redes sociales

Comenta esta entrada

Comentarios

No se encontraron comentarios para esta entrada.
Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestro sitio web. Si continúa utilizando este sitio asumiremos que está de acuerdo.