package com.cxs.utils; import cn.hutool.core.io.resource.ClassPathResource; import cn.hutool.core.io.resource.Resource; import com.cxs.config.MailConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.text.MessageFormat; /** * @Project: cxs-currency-sys-server * @Author: cxs2014501@163.com * @Create: 2023/2/8 13:37 * @Description: **/ @Slf4j @Component public class SendMailUtil { @Autowired private JavaMailSenderImpl javaMailSender; @Autowired private MailConfig mailConfig; /** * 发送带附近的邮件信息 * @param to 收件人 * @param subject 主题 * @param content 内容 */ public void sendMail(String to, String subject, String content) { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setSubject(subject); helper.setText(content, true); helper.setTo(to); helper.setFrom(mailConfig.getUsername()); javaMailSender.send(message); } catch (MessagingException e) { e.printStackTrace(); } } /** * 读取邮件模板 * 替换模板中的信息 * @param code 内容 * @return */ public String buildCodeContent(String code) { //加载邮件html模板 Resource resource = new ClassPathResource("mailtemplate.ftl"); InputStream inputStream = null; BufferedReader fileReader = null; StringBuffer buffer = new StringBuffer(); String line = ""; try { inputStream = resource.getStream(); fileReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); while ((line = fileReader.readLine()) != null) { buffer.append(line); } } catch (Exception e) { log.info("发送邮件读取模板失败{}", e); } finally { if (fileReader != null) { try { fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } //替换html模板中的参数 return MessageFormat.format(buffer.toString(), "测试验证码", "全栈小白的手机号", mailConfig.getUsername(), code); } }