dev add reset password
Test Workflow / test (push) Successful in 10s

This commit is contained in:
vladp
2026-02-17 20:17:34 +07:00
parent 9f67f0c06d
commit ac11de2abb
15 changed files with 534 additions and 14 deletions
@@ -38,6 +38,9 @@ public class EmailService {
@Value("${app.email.verification.user}")
private String user;
@Value("${app.email.verification.drop-password-subject}")
private String dropPasswordSubject;
public void sendVerificationEmail(User user, String code) throws MessagingException, IOException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
@@ -45,8 +48,8 @@ public class EmailService {
helper.setFrom("noreply@no-copy.ru");
helper.setTo(user.getEmail());
helper.setSubject(standartSubject);
String htmlContent = loadAndProcessTemplate(user.getFullName(), code);
String htmlContent = loadAndProcessTemplate(user.getFullName(), code,
"templates/email-verification.html");
helper.setText(htmlContent, true);
mailSender.send(message);
@@ -69,8 +72,8 @@ public class EmailService {
return String.valueOf(code);
}
private String loadAndProcessTemplate(String username, String code) throws IOException {
ClassPathResource resource = new ClassPathResource("templates/email-verification.html");
private String loadAndProcessTemplate(String username, String code, String templatePath) throws IOException {
ClassPathResource resource = new ClassPathResource(templatePath);
String template = new String(resource.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
String safeUsername = escapeHtml(username != null ? username : user);
String safeCode = escapeHtml(code);
@@ -89,4 +92,25 @@ public class EmailService {
.replace("\"", """)
.replace("'", "'");
}
public void sendResetPasswordEmail(User user, String code) {
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8");
helper.setFrom(standartAdressFrom);
helper.setTo(user.getEmail());
helper.setSubject(dropPasswordSubject);
String htmlContent = loadAndProcessTemplate(user.getFullName(), code,
"templates/reset-password.html");
helper.setText(htmlContent, true);
mailSender.send(message);
log.info("Email sent to: {}", user.getEmail());
} catch (Exception e) {
log.error("Failed to send email: {}", e.getMessage());
}
}
}