springboot实现发送邮件,java发邮件

6,008 阅读2分钟

近期学习java后台开发,学到了springboot发送邮件。感觉这也算是一个很实用的知识点,就在这里总结下,方便以后用。也方便大家学习。 #准备工作

  • 1,有一点java基础和springboot基础
  • 2,有163邮箱 #步骤
  • 1,用idea新建springboot项目,如果不知道怎么用idea新建springboot项目请自行百度
  • 2,建好项目后在pom.xml文件中引入
<dependency>
      <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
 </dependency>
  • 3,在配置文件application.properties中添加如下配置
spring.mail.host=smtp.163.com
spring.mail.username=你的163邮箱
spring.mail.password=注意这里不是邮箱密码,而是SMTP授权密码
spring.mail.port=25
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8

上面提到的smtp的授权密码的获取下面给出图解

开启smtp权限.png
获取smtp授权密码.png
注意:你这里设置的授权密码就是商品配置信息中要输入的密码

  • 4,下面上代码
package com.qcl;

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.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;

/*
* 小石头
* 2501902696@qq.com
* */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootJmsApplicationTests {

    @Test
    public void contextLoads() {
    }


    @Autowired
    private JavaMailSenderImpl mailSender;

    /**
     * 发送包含简单文本的邮件
     */
    @Test
    public void sendTxtMail() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        // 设置收件人,寄件人
        simpleMailMessage.setTo(new String[]{"2501902696@qq.com", "1587072557@qq.com"});
        simpleMailMessage.setFrom("15611823564@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("2501902696@qq.com");
        mimeMessageHelper.setFrom("15611823564@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("邮件已发送");

    }

}

我这里是用单元测试直接跑的。下面看下接收到的效果

接收到测试发送的邮件.jpg

到此,我们就轻松的实现了批量发送邮件的代码了。用springboot做邮件发送是不是特别简单。