package com.vincent.rsf.server.common.service; import com.alibaba.fastjson.JSON; import com.vincent.rsf.common.utils.Utils; import com.vincent.rsf.framework.common.Cools; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.MailException; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.util.Map; @Slf4j @Service public class EmailService { @Value("${spring.mail.username}") private String from; private final static String TEMPLATE = "Your verification code is: ${code}"; @Autowired @SuppressWarnings("all") private JavaMailSender mailSender; public boolean sendEmail(String to, String subject, Map param) { String content = "Your verification code is: ${code}"; if (!Cools.isEmpty(param) && !param.isEmpty()) { content = Utils.processTemplate(content, param); } boolean sendRes = this.send(this.from, to, subject, content); if (sendRes) { log.info("Email sent successfully. To: {}, Subject: {}, Parameter: {}" , to , subject , JSON.toJSONString(param)); } return sendRes; } public boolean send(String from, String to, String subject, String content) { try { MimeMessage message = mailSender.createMimeMessage(); message.setFrom(from); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(to); helper.setSubject(subject); helper.setText(content); mailSender.send(message); return true; } catch (MailException | MessagingException e) { log.error(this.getClass().getSimpleName(), e); return false; } } }