En este repositorio te mostraremos un pequeños ejemplo para enviar correo con SpringBoot, hemos creado una plantilla de "Recuperar contraseña" (en HTML).
- Conectar cuenta Google
- Dependencia: SpringBoot
- Plantilla HTML
- Uso en Postman
- Previsualización
- Enlaces de apoyo
- Consideración
Herramienta | Versión |
---|---|
Spring Tool Suite 4 | 4.12.0.RELEASE |
Java | 16 |
Postman | 10.20.0 |
# CONFIGURACION DE CONEXION
...
support.name=SendEmailSpring TEST
spring.mail.username=alex7320f@gmail.com
spring.mail.password=cdkfpsiumctfuavp
- support.name : Nombre de pila que se mostrará en el correo.
- spring.mail.username : Correo Gmail del remitente.
- spring.mail.password : Contraseña de aplicación Google (No es la contraseña de la cuenta Google)
La contraseña que generemos debemos colocarlo en spring.mail.password
Se ha agregado al pom.xml la dependencia spring-boot-starter-mail v2.7.17
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Podemos modificar la plantilla en la función contenidoHtml
(Clase: EmailService)
public String contenidoHtml(String username, String email, String newpassword) {
String imagen = "https://i.postimg.cc/Gt1rWjyY/imgemail.jpg";
String contenido = String.format(""+
"<div style='background-color: white'>"+
"<div style='padding: 30px;display: flex;align-items: center;'>"+
"<div>"+
"<div style='max-width: 600px; background-color: white;border: 1px solid rgb(211, 211, 211);border-radius: 7px; padding-bottom: 20px;'>"+
"<center>"+
"<img src='%s' style='width: 350px; margin-top: 15px;' alt='logo'>"+
"</center>"+
"<center style='margin-left: 3rem;margin-right: 3rem;font-size: 18px;'>"+
"Se ha realizado el cambio de contraseña el día %s, de su cuenta <b>%s</b> (%s)"+
"</center>"+
"<div style='margin-left: 3rem; margin-right: 3rem;margin-top: 40px; margin-bottom: 17px;'>"+
"<div class='input-group'>"+
"<b>Nueva contraseña </b>"+
"<span style='border: 1px solid gray; border-radius: 5px; padding: 5px;'>%s</span>"+
"</div>"+
"</div>"+
"</div>"+
"</div>"+
"</div>"+
"</div>",imagen, this.generarFecha(),username, email, newpassword);
return contenido;
}
Utilizar la siguiente uri con el metodo POST.
http://localhost:8080/user/forgot
Estos son los datos para el receptor del correo. Debemos utilizar la siguiente estructura en JSON, configurado en Spring en el paquete send.email.template
, clase EmailTemplate
(Por favor no utilizar el siguiente correo, solo es de ejemplo)
{
"templateEmail":"alex7320k@gmail.com",
"templateUsername":"ALEX7320"
}
- Set sender name in JavaMailSender
- Javamail Could not convert socket to TLS GMail
- How can I parse/format dates with LocalDateTime? (Java 8)
Si tienes el antivirus Avast deberás desactivarlo, de lo contrario te saldrá error al enviar el correo mediante SpringBoot.