spring boot集成spring-boot-starter-mail邮件功能

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。总之就是springboot 真香

相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。

 

1.使用普通的maven项目需要加入spring-context-support依赖,因为JavaMailSenderImpl类在这个包下面:

2.使用springboot 需要引入

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

  

依赖引入之后  在我们的配置文件中做如下配置

注意这里面的密码是我们邮箱的授权码 不是登陆的密码

另外有上传到服务器中报错无法使用的 比如阿里云 腾讯云 

以腾讯云为例 可以申请去解封25端口  百度很多方法。在这只提一下这个问题

 

 

在本博客只演示的发送邮件和附件

 

 /**
     * 无附件 简单文本内容发送
     * @param email 接收方email
     * @param subject 邮件内容主题
     * @param text 邮件内容
     */
    public  void simpleMailSend(String email,String subject,String text) {
        //创建邮件内容
        SimpleMailMessage message=new SimpleMailMessage();
        message.setFrom(username);//这里指的是发送者的账号
        message.setTo(email);
        message.setSubject(subject);
        message.setText(text);
        //发送邮件
        mailSender.send(message);
        System.out.println("\033[32;1m"+"发送给 "+email+" 的邮件发送成功"+"\033[0m");
    }

  

 

 /**
     * 发送带附件的邮件
     *
     * @param to      接受人
     * @param subject 主题
     * @param html    发送内容
     * @param filePath  附件路径
     * @throws MessagingException           异常
     * @throws UnsupportedEncodingException 异常
     */
    public  void sendAttachmentMail(String to, String subject, String html, String filePath) throws MessagingException, UnsupportedEncodingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        // 设置utf-8或GBK编码,否则邮件会有乱码
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
        messageHelper.setFrom(username,emailName);
        messageHelper.setTo(to);
        messageHelper.setSubject(subject);
        messageHelper.setText(html, true);
        FileSystemResource file=new FileSystemResource(new File(filePath));
        String fileName=filePath.substring(filePath.lastIndexOf(File.separator));
        messageHelper.addAttachment(fileName,file);
        mailSender.send(mimeMessage);
    }

  

 /**
     * 发送html内容的 邮件
     * @param email
     * @param subject
     * @param text
     */
    public void sendSimpleMailHtml(String email,String subject,String text) throws MessagingException {


        MimeMessage mimeMessage = mailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom(username);
        helper.setTo("demogogo@yeah.net");
        helper.setSubject("主题:嵌入静态资源");
        // 注意<img/>标签,src='cid:jpg','cid'是contentId的缩写,'jpg'是一个标记
        helper.setText("<html><body><img src=\"cid:jpg\"></body></html>", true);
        // 加载文件资源,作为附件
        FileSystemResource file = new FileSystemResource(new File("C:\\Users\\吴超\\Pictures\\Camera Roll\\微信截图_20191016142536.png"));
        // 调用MimeMessageHelper的addInline方法替代成文件('jpg[标记]', file[文件])
        helper.addInline("jpg", file);
        // 发送邮件
        mailSender.send(mimeMessage);
    }

  

打开我们的邮箱  小姐姐到手

 

posted @ 2020-06-19 16:58  18岁的俊后生  阅读(5261)  评论(0编辑  收藏  举报