java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot邮件任务

SpringBoot实现邮件任务的步骤详解

作者:野生派蒙

这篇文章主要介绍了SpringBoot实现邮件任务的步骤详解,使用Spring Boot实现QQ邮箱发送邮件具有快速集成、统一的开发体验、强大的维护和扩展能力、可靠的送达性和安全性等优势,可以帮助你快速构建稳定可靠的邮件发送功能,需要的朋友可以参考下

一、使用背景

邮件任务在实际应用开发中有很多应用场景。以下是一些常见的使用到邮件任务的情况:

综上所述,使用Spring Boot实现QQ邮箱发送邮件具有快速集成、统一的开发体验、强大的维护和扩展能力、可靠的送达性和安全性等优势,可以帮助你快速构建稳定可靠的邮件发送功能

二、邮件任务的优点

三、SpringBoot 实现邮件任务

接下来开始实操,本文将讲述,SpringBoot 实现QQ邮箱发送,如果想使用其他的邮箱修改application.yml 配置即可

项目结构

在这里插入图片描述

pom.xml

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

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

配置QQ邮箱的授权码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

application.yml

spring:
  mail:
    username: 2642503078@qq.com   # 邮箱账号
    password: jhgndlzfhzaydjhg    # 邮箱密码,授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码,防止密码明文,保护自身的安全性
    host: smtp.qq.com             # 邮箱的服务,如果使用其他的邮箱修改这个配置即可
    properties:
      mail:
        smtp:
          ssl:
            enable: true          # 开启加密验证

service类

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 邮件发送服务类
 */
@Service
public class emailSenderService {
    // 注入 mail 实体,所有邮件相关的操作,都在这个类上
    @Resource
    private JavaMailSenderImpl mailSender;

    /**
     * 发送文本邮件
     */
    public void textMail() {
        // 简单邮件消息类
        SimpleMailMessage simpleMessage = new SimpleMailMessage();
        // 邮件主题
        simpleMessage.setSubject("SpringBoot 实现文本邮件发送~");
        // 邮件内容
        simpleMessage.setText("一个文本文件已发送到你的QQ邮箱上~");
        // 发送人
        simpleMessage.setTo("2642503078@qq.com");
        // 接收人
        simpleMessage.setFrom("2642503078@qq.com");

        // 开始发送
        mailSender.send(simpleMessage);
    }

}
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * 邮件发送服务类
 */
@Service
public class emailSenderService {
    // 注入 mail 实体,所有邮件相关的操作,都在这个类上
    @Resource
    private JavaMailSenderImpl mailSender;

    /**
     * 发送超文本邮件
     */
    public void hyperTextMail() throws MessagingException {
        // 负责邮件消息类
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        // 参数1:消息类
        // 参数2:是否支持发送附件
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        // 邮件主题
        mimeMessageHelper.setSubject("SpringBoot 实现超文本邮件发送~");
        // 参数1:邮件内容
        // 参数2:是否支持html
        mimeMessageHelper.setText("<h1 style='color:blue>'一个文本文件已发送到你的QQ邮箱上~</h1>",true);
        // 附件
        // 参数1:发送到邮件的文件名
        // 参数2:本地文件的绝对路径,不知道在哪的,右键文件点属性有个位置,复制下来,加上文件名
        mimeMessageHelper.addAttachment("SpringBoot01.jpg", new File("C:\\Users\\xzh\\Desktop\\SpringBoot01.jpg"));
        mimeMessageHelper.addAttachment("SpringBoot02.jpg", new File("C:\\Users\\xzh\\Desktop\\SpringBoot02.jpg"));
        // 发送人
        mimeMessageHelper.setTo("2642503078@qq.com");
        // 接收人
        mimeMessageHelper.setFrom("2642503078@qq.com");
        // 开始发送
        mailSender.send(mimeMessage);
    }
}

启动类

@SpringBootApplication
public class EmailApplication implements ApplicationRunner {
	@Resource
	private emailSenderService emailService;

	public static void main(String[] args) {
		SpringApplication.run(EmailApplication.class, args);
	}

	@Override
	public void run(ApplicationArguments args) throws Exception {
		// 当项目启动就会执行
		emailService.textMail();
	}
}

启动项目,测试

文本邮件

在这里插入图片描述

超文本邮件

在这里插入图片描述

到此这篇关于SpringBoot实现邮件任务的步骤详解的文章就介绍到这了,更多相关SpringBoot邮件任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文