package com.seconectai.condocontab.integracao; import jakarta.mail.Message; import jakarta.mail.MessagingException; import jakarta.mail.PasswordAuthentication; import jakarta.mail.Session; import jakarta.mail.Transport; import jakarta.mail.internet.InternetAddress; import jakarta.mail.internet.MimeMessage; import java.util.Map; import java.util.Properties; public final class EmailClient { public void enviar(Map smtp, String destino, String assunto, String texto) throws MessagingException { if (smtp == null || smtp.getOrDefault("smtp_host", "").isBlank()) return; Properties props = new Properties(); props.put("mail.smtp.host", smtp.get("smtp_host")); props.put("mail.smtp.port", smtp.getOrDefault("smtp_port", "587")); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", smtp.getOrDefault("smtp_starttls", "true")); String user = smtp.getOrDefault("smtp_user", ""); String pass = smtp.getOrDefault("smtp_password", ""); Session session = Session.getInstance(props, new jakarta.mail.Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, pass); } }); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(smtp.getOrDefault("smtp_from", user))); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(destino)); message.setSubject(assunto == null ? "Aviso" : assunto, "UTF-8"); message.setText(texto == null ? "" : texto, "UTF-8"); Transport.send(message); } }