EmailService.java
package com.edtech.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
/** Documentação para EmailService. */
@Service
public class EmailService {
private static final Logger logger = LoggerFactory.getLogger(EmailService.class);
@Autowired private JavaMailSender mailSender;
/** Documentação. */
@Async
public void sendRecoveryEmail(String toEmail, String otpCode) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("noreply@edtech.com");
message.setTo(toEmail);
message.setSubject("Código de Recuperação de Senha - EdTech");
message.setText(
"Olá,\n\n"
+ "Você solicitou a recuperação da sua senha na EdTech.\n"
+ "Seu código de segurança (OTP) de 6 dígitos é: "
+ otpCode
+ "\n\n"
+ "Este código é válido por 15 minutos.\n"
+ "Se você não solicitou isso, ignore este e-mail.\n\n"
+ "Equipe EdTech");
logger.info("======= E-MAIL SIMULADO NO CONSOLE =======");
logger.info(
"De: noreply@edtech.com\nPara: {}\nAssunto: {}\nCorpo:\n{}",
message.getTo()[0],
message.getSubject(),
message.getText());
logger.info("=========================================");
try {
mailSender.send(message);
} catch (MailException ex) {
logger.warn(
"Não foi possível enviar e-mail real via SMTP "
+ "(verifique credenciais). Usando apenas simulação no console.");
}
}
/** Javadoc. */
@Async
public void sendVerificationEmail(String toEmail, String otpCode) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("noreply@edtech.com");
message.setTo(toEmail);
message.setSubject("Código de Verificação de Conta - EdTech");
message.setText(
"Olá,\n\n"
+ "Bem-vindo à EdTech!\n"
+ "Seu código de verificação (OTP) de 6 dígitos é: "
+ otpCode
+ "\n\n"
+ "Este código é válido por 15 minutos.\n"
+ "Se você não solicitou isso, ignore este e-mail.\n\n"
+ "Equipe EdTech");
logger.info("======= E-MAIL SIMULADO NO CONSOLE =======");
logger.info(
"De: noreply@edtech.com\nPara: {}\nAssunto: {}\nCorpo:\n{}",
message.getTo()[0],
message.getSubject(),
message.getText());
logger.info("=========================================");
try {
mailSender.send(message);
} catch (MailException ex) {
logger.warn(
"Não foi possível enviar e-mail real via SMTP "
+ "(verifique credenciais). Usando apenas simulação no console.");
}
}
}