programar un mail para un dia concreto java spring boot
/*
ServletContextListener
Rol: supervisar la creación y destrucción de objetos ServletContext
Expansión:
Creación de Servletcontext: al iniciar el servidor
Destrucción de ServletContext: cierra el servidor. Elimina el proyecto del servidor.
*/
@WebListener()
public class BirthdayMailListener implements ServletContextListener {
/**
* Supervisar la creación del objeto ServletContext
*/
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("Inicie el servidor, cree un ServletContext para su ejecución");
// Crea una instancia del objeto del temporizador
Timer timer = new Timer();
// Obtener el tiempo de la primera ejecución del temporizador, si ha pasado el tiempo de la primera ejecución, la tarea del temporizador se ejecutará una vez cuando se inicie el temporizador
String firstTimeStr="2020-02-22 10:00:00";
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date firstTime=null;
try {
firstTime = simpleDateFormat.parse(firstTimeStr);
System.out.println("BirthdayMailListener firstTime"+firstTime);
} catch (ParseException e) {
e.printStackTrace();
}
/ * Asignar tareas al objeto del temporizador.
Descripción de parámetros:
tarea: interfaz TimerTask, objeto de tarea de temporizador, debe crear una clase interna anónima y escribir el código que se ejecutará en el método de ejecución
firstTime: la hora de la primera ejecución, el tipo es Date
período: el intervalo periódico de ejecución de la tarea, en milisegundos.
*/
timer.schedule(new TimerTask() {
@Override
public void run() {
// Llame a la capa de lógica empresarial para obtener usuarios cuyo cumpleaños sea hoy
UserService userService = new UserService();
List<User> userList =userService.getBirthdayUsers();
System.out.println("BirthdayMailListener userList"+userList);
for (User user :userList) {
try {
MailUtils.sendMail(user.getEmail(),"Correo de cumpleaños","¡¡¡Feliz cumpleaños a ti!!!");
System.out.println("Hoy es"+user.getUsername()+"Cumpleaños, le ha enviado un correo electrónico de cumpleaños");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
},firstTime,24*60*60*1000);
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
}
}
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162