19.springboot发送mail

来源:互联网 发布:python 完成端口 编辑:程序博客网 时间:2024/05/21 14:44

1.介绍

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
JMS是一种与厂商无关的 API,用来访问消息收发系统消息,它类似于JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)


2.建立工程

(1)pom.xml
引入mail依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>      <groupId>com.tyf</groupId>    <artifactId>test</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>      <name>test</name>    <url>http://maven.apache.org</url>      <!-- springboot -->    <parent>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-parent</artifactId>          <version>1.5.2.RELEASE</version>          <relativePath/>     </parent>      <!-- 编码 -->    <properties>      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    </properties>      <dependencies>            <dependency>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-starter</artifactId>            </dependency>          <dependency>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-starter-web</artifactId>          </dependency>              <!-- test -->          <dependency>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-starter-test</artifactId>                  <scope>test</scope>          </dependency>      <!-- jms依赖 --><dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-mail</artifactId>    </dependency><!-- jms依赖 -->    </dependencies>                <!-- maven插件 -->      <build>          <plugins>              <plugin>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-maven-plugin</artifactId>              </plugin>          </plugins>      </build>                   </project>



(2)application.properties
填写一个邮箱账号
spring.mail.host=smtp.163.comspring.mail.username=miles02@163.comspring.mail.password=spring.mail.port=25spring.mail.protocol=smtpspring.mail.default-encoding=UTF-8

(3)测试类
package com.tyf.jms;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("邮件已发送");    }}




原创粉丝点击