• springboot发邮件 爱上


      <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>

    接口类
    public interface IMailService {
    /**
    * 发送文本邮件
    * @param to 收件人
    * @param subject 主题
    * @param content 内容
    */
    void sendSimpleMail(String to, String subject, String content);

    /**
    * 发送HTML邮件
    * @param to 收件人
    * @param subject 主题
    * @param content 内容
    */
    public void sendHtmlMail(String to, String subject, String content);



    /**
    * 发送带附件的邮件
    * @param to 收件人
    * @param subject 主题
    * @param content 内容
    * @param filePath 附件
    */
    public void sendAttachmentsMail(String to, String subject, String content, String filePath);
    }


    实现类
    @Service
    public class IMailServiceImpl implements IMailService {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
    * Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口,这里直接注入即可使用
    */
    @Autowired
    private JavaMailSender mailSender;

    /**
    * 配置文件中我的qq邮箱
    */
    @Value("${spring.mail.from}")
    private String from;

    /**
    * 简单文本邮件
    *
    * @param to 收件人
    * @param subject 主题
    * @param content 内容
    */
    @Override
    public void sendSimpleMail(String to, String subject, String content) {
    // 创建SimpleMailMessage对象
    SimpleMailMessage message = new SimpleMailMessage();
    // 邮件发送人
    message.setFrom(from);
    // 邮件接收人
    message.setTo(to.split(","));
    // 邮件主题
    message.setSubject(subject);
    // 邮件内容
    message.setText(content);
    // 发送邮件
    mailSender.send(message);
    // 日志信息
    logger.info("邮件已经发送");
    }

    /**
    * html邮件
    *
    * @param to 收件人
    * @param subject 主题
    * @param content 内容
    */
    @Override
    public void sendHtmlMail(String to, String subject, String content) {
    // 获取MimeMessage对象
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper messageHelper;
    try {
    messageHelper = new MimeMessageHelper(message, true);
    // 邮件发送人
    messageHelper.setFrom(from);
    // 邮件接收人
    messageHelper.setTo(subject);
    // 邮件主题
    message.setSubject(subject);
    // 邮件内容,html格式
    messageHelper.setText(content, true);
    // 发送
    mailSender.send(message);
    // 日志信息
    logger.info("邮件已经发送。");
    } catch (MessagingException e) {
    logger.error("发送邮件时发生异常!", e);
    }
    }

    /**
    * 带附件的邮件
    *
    * @param to 收件人
    * @param subject 主题
    * @param content 内容
    * @param filePath 附件
    */
    @Override
    public void sendAttachmentsMail(String to, String subject, String content, String filePath) {
    MimeMessage message = mailSender.createMimeMessage();
    try {
    MimeMessageHelper helper = new MimeMessageHelper(message, true);
    helper.setFrom(from);
    helper.setTo(to.split(","));
    helper.setSubject(subject);
    helper.setText(content, true);
    FileSystemResource file = new FileSystemResource(new File(filePath));
    String fileName = filePath.substring(filePath.lastIndexOf("/")+1);
    String newFileName = MimeUtility.encodeWord(fileName, "utf-8", "B");

    helper.addAttachment(newFileName,file);
             mailSender.send(message);
    // 日志信息
    logger.info("邮件已经发送。");
    } catch (MessagingException e) {
    logger.error("发送邮件时发生异常!", e);
    } catch (UnsupportedEncodingException e) {
    logger.error("发送邮件时发生异常!", e);
    }
    }

    }


  • 相关阅读:
    Spark监控官方文档学习笔记
    Maven打包排除某个资源或者目录
    源码中的哲学——通过构建者模式创建SparkSession
    CentOS7启动Tomcat报错:./startup.sh: Permission denied
    Centos7 安装 redis
    centos7 查找jdk 安装路径
    Activemq(centos7)开机自启动服务
    /var/run/redis_6379.pid exists, process is already running or crashed解决方案
    activeMQ 修改端口号
    CentOS7.5 通过wget下载文件到指定目录
  • 原文地址:https://www.cnblogs.com/xgyweb/p/16055462.html
Copyright © 2020-2023  润新知