基于Springboot邮件发送实现

本文介绍如何使用SpringBoot实现简单及复杂的邮件发送功能,包括项目搭建、依赖引入、配置文件设置、发送纯文本邮件和HTML格式邮件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Springboot邮件发送实现

1、创建springboot项目,并引入相关依赖依赖

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.greatmap</groupId>
    <artifactId>mail</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mail</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2、获取QQ邮箱授权码

在这里插入图片描述
在这里插入图片描述
找到SMTP服务,并开启SMTP服务
在这里插入图片描述
QQ 邮箱会生成一个授权码,在代码里连接邮箱使用这个授权码而不是原始的邮箱密码,这样可以避免使用明文密码。
在这里插入图片描述

3、配置application.yml配置文件

spring:
  mail:
    username: #自己的邮箱帐号
    password: #生成的授权码,代替明文的QQ密码
    host: smtp.qq.com

4、简单邮件发送

import org.junit.jupiter.api.Test;
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 javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Random;

@SpringBootTest
class MailApplicationTests {

	//需要注入JavaMailSenderImpl
    @Autowired
    JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() {
		//创建SimpleMailMessage对象
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setFrom("填写发送方的邮箱地址");
        mailMessage.setTo("填写接收方的邮箱地址");
        mailMessage.setSubject("学习邮件发送"); //邮件的标题
        mailMessage.setText("准备作为邮件验证码使用!!!"); //邮件内容

        javaMailSender.send(mailMessage); //发送

    }

}

5、复杂邮件发送

import org.junit.jupiter.api.Test;
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 javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Random;

@SpringBootTest
class MailApplicationTests {

	//注入JavaMailSenderImpl 
    @Autowired
    JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads2() {
    	//创建MimeMessage 对象
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //创建MimeMessageHelper 对象
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);

        String name = "Harris";
        String code = "123456";

        try {
            helper.setFrom("填写发送方的邮箱地址");
            helper.setTo("填写接收方的邮箱地址");
            helper.setSubject("复杂邮件学习"); //邮件标题
            helper.setText("<p>你好," + "<span style='color:blue;'>" + name + "</span>" + "</p>" +
                    "<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;您的验证码为" + "<span style='color:blue;'>" +code + "</span>" + "由于该验证码涉及账户安全,请不要随意告诉他人!</p>", true); //邮件内容,如果为true则表示开启html解析
        } catch (MessagingException e) {
            e.printStackTrace();
        }

        javaMailSender.send(mimeMessage); //发送

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值