作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服
SpringBoot非官方教程 | 第二十一篇: springboot集成JMS

Custom Tab



构架工程

创建一个springboot工程,在其pom文件加入:

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


添加配置

spring.mail.host=smtp.163.comspring.mail.username=miles02@163.comspring.mail.password=
spring.mail.port=25spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8


在password 中填写自己的邮箱密码。

测试发邮件

测试代码清单如下:

package com.forezp;import org.junit.Test;import org.junit.runner.RunWith;import org.
springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.
MimeMessageHelper;import org.springframework.test.context.junit4.SpringRunner;import javax.mail.internet.
MimeMessage;import java.io.File;@RunWith(SpringRunner.class)@SpringBootTestpublic class 
SpringbootJmsApplicationTests {

    @Test
    public void contextLoads() {
    }    @Autowired
    private JavaMailSenderImpl mailSender;    /**
     * 发送包含简单文本的邮件
     */
    @Test
    public void sendTxtMail() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();        
        // 设置收件人,寄件人
        simpleMailMessage.setTo(new String[] {"miles02@163.com"});
        simpleMailMessage.setFrom("miles02@163.com");
        simpleMailMessage.setSubject("Spring Boot Mail 邮件测试【文本】");
        simpleMailMessage.setText("这里是一段简单文本。");        
        / 发送邮件
        mailSender.send(simpleMailMessage);

        System.out.println("邮件已发送");
    }    /**
     * 发送包含HTML文本的邮件
     * @throws Exception
     */
    @Test
    public void sendHtmlMail() throws Exception {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
        mimeMessageHelper.setTo("miles02@163.com");
        mimeMessageHelper.setFrom("miles02@163.com");
        mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【HTML】");

        StringBuilder sb = new StringBuilder();
        sb.append("<html><head></head>");
        sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");
        sb.append("</html>");        // 启用html
        mimeMessageHelper.setText(sb.toString(), true);        
        // 发送邮件
        mailSender.send(mimeMessage);

        System.out.println("邮件已发送");

    }    /**
     * 发送包含内嵌图片的邮件
     * @throws Exception
     */
    @Test
    public void sendAttachedImageMail() throws Exception {
        MimeMessage mimeMessage = mailSender.createMimeMessage();       
         // multipart模式
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setTo("miles02@163.com");
        mimeMessageHelper.setFrom("miles02@163.com");
        mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【图片】");

        StringBuilder sb = new StringBuilder();
        sb.append("<html><head></head>");
        sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p>");        
        // cid为固定写法,imageId指定一个标识
        sb.append("<img src=\"cid:imageId\"/></body>");
        sb.append("</html>");        // 启用html
        mimeMessageHelper.setText(sb.toString(), true);        
        // 设置imageId
        FileSystemResource img = new FileSystemResource(new File("E:/1.jpg"));
        mimeMessageHelper.addInline("imageId", img);        
        // 发送邮件
        mailSender.send(mimeMessage);

        System.out.println("邮件已发送");
    }    /**
     * 发送包含附件的邮件
     * @throws Exception
     */
    @Test
    public void sendAttendedFileMail() throws Exception {
        MimeMessage mimeMessage = mailSender.createMimeMessage();        
        // multipart模式
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");
        mimeMessageHelper.setTo("miles02@163.com");
        mimeMessageHelper.setFrom("miles02@163.com");
        mimeMessageHelper.setSubject("Spring Boot Mail 邮件测试【附件】");

        StringBuilder sb = new StringBuilder();
        sb.append("<html><head></head>");
        sb.append("<body><h1>spring 邮件测试</h1><p>hello!this is spring mail test。</p></body>");
        sb.append("</html>");        // 启用html
        mimeMessageHelper.setText(sb.toString(), true);        
        // 设置附件
        FileSystemResource img = new FileSystemResource(new File("E:/1.jpg"));
        mimeMessageHelper.addAttachment("image.jpg", img);        
        // 发送邮件
        mailSender.send(mimeMessage);

        System.out.println("邮件已发送");
    }
}


测试已全部通过,没有坑。

参考资料

http://blog.720ui.com/2017/springboot_07_othercore_javamail/

源码下载

https://github.com/forezp/SpringBootLearning

SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程

SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql

SpringBoot非官方教程 | 第四篇:SpringBoot 整合JPA

SpringBoot非官方教程 | 第五篇:springboot整合 beatlsql

SpringBoot非官方教程 | 第六篇:springboot整合mybatis

SpringBoot非官方教程 | 第七篇:springboot开启声明式事务

SpringBoot非官方教程 | 第八篇:springboot整合mongodb

SpringBoot非官方教程 | 第九篇: springboot整合Redis

SpringBoot非官方教程 | 第十篇: 用spring Restdocs创建API文档

SpringBoot非官方教程 | 第十一篇:springboot集成swagger2,构建优雅的Restful API

SpringBoot非官方教程 | 第十二篇:springboot集成apidoc

SpringBoot非官方教程 | 第十三篇:springboot集成spring cache

SpringBoot非官方教程 | 第十四篇:在springboot中用redis实现消息队列

SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ

SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务

SpringBoot非官方教程 | 第十七篇:上传文件

SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks)

SpringBoot非官方教程 | 第十九篇: 验证表单信息

SpringBoot非官方教程 | 第二十篇: 处理表单提交


SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程

SpringBoot非官方教程 | 第二十三篇: 异步方法

SpringBoot非官方教程 | 第二十四篇: springboot整合docker

SpringBoot非官方教程 | 第二十五篇:2小时学会springboot

SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台


优秀文章推荐:




转载自:http://blog.csdn.net/forezp/article/details/71024024

Home