les dejo la solucion que me funciono a mi, espero sea de ayuda y de paso les dejo un link para que visiten mi pagina, saludo grande a todos (https://programacion365.com/):
el codigo de mi clase principal es el siguiente:
package com.example.spring_email;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class SpringEmailApplication {
public static void main(String[] args) {
SpringApplication.run(SpringEmailApplication.class, args);
}
@Bean
CommandLineRunner runner(EmailService emailService) {
return args -> {
String destinatarios = "[email protected],[email protected]";
String asunto = "Correo de prueba";
String cuerpo = "<h1>Hola a todos</h1><p>Este es un mensaje para mĂșltiples destinatarios.</p>";
emailService.enviarCorreo(destinatarios, asunto, cuerpo);
};
}
}
creamos un controlador con el siguiente codigo:
package com.example.spring_email.controladores;
import com.example.spring_email.EmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
public class EmailController {
@Autowired
private EmailService emailService;
@GetMapping("/formulario")
public String mostrarFormulario() {
return "email_form";
}
@PostMapping("/enviar")
public String enviarCorreo(
@RequestParam("destinatarios") String destinatarios,
@RequestParam("asunto") String asunto,
@RequestParam("cuerpo") String cuerpo,
Model model) {
try {
emailService.enviarCorreo(destinatarios, asunto, cuerpo);
model.addAttribute("mensaje", "Correo enviado exitosamente.");
} catch (Exception e) {
model.addAttribute("mensaje", "Error al enviar el correo: " + e.getMessage());
}
return "email_form";
}
}
tambien creamos un servicio:
package com.example.spring_email;
import jakarta.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
@Autowired
private JavaMailSender mailSender;
public void enviarCorreo(String destinatarios, String asunto, String mensajeHtml) throws Exception {
MimeMessage mensaje = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mensaje, true);
String[] destinatariosArray = destinatarios.split("[;,]");
helper.setTo(destinatariosArray);
helper.setSubject(asunto);
// Agregar contenido HTML con firma
String htmlConFirma = mensajeHtml +
"<br><br><img src='cid:firmaImagen' alt='Firma' width='200'/>";
helper.setText(htmlConFirma, true);
// Cargar imagen desde resources
ClassPathResource imagen = new ClassPathResource("static/images/logo.png");
helper.addInline("firmaImagen", imagen);
mailSender.send(mensaje);
}
}
y por ultimo creamos el formulario de envio en html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Enviar Correo</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Enviar correo a mĂșltiples destinatarios</h1>
<form th:action="@{/enviar}" method="post">
<label>Destinatarios (separados por coma):</label><br>
<input type="text" name="destinatarios" style="width: 400px;" required><br><br>
<label>Asunto:</label><br>
<input type="text" name="asunto" style="width: 400px;" required><br><br>
<label>Cuerpo del mensaje:</label><br>
<textarea name="cuerpo" rows="10" cols="50" required></textarea><br><br>
<button type="submit">Enviar</button>
</form>
<p th:text="${mensaje}" style="color: green;"></p>
</body>
</html>