SpringBoot——发送普通文本邮件

目录

发送邮件

新建一个SpringBoot项目

pom.xml

application.properties

SpringEmailService

SpringbootJavaMailApplication

项目总结


参考文章:

发送邮件

  • 邮件的创建和发送只需要使用 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
  • JavaMail

    • 是一个用于发送和接收电子邮件的Java API,它提供了丰富的功能和灵活的配置选项,可以与各种邮件服务器进行通信。JavaMail API包含了多个类和接口,如Session、Message、Transport、Store等。

  • JavaMailSender

    • 是Spring框架提供的一个用于发送邮件的工具类,它封装了JavaMail API,并提供了更加简洁的API接口和更加易用的配置选项。JavaMailSender使用JavaMail API建立与邮件服务器的连接,并使用SMTP协议来发送邮件。

  • JavaMail和JavaMailSender都可以用来发送邮件,但是它们在使用方式和功能上有所不同。JavaMail提供的API比较底层,需要手动配置邮件服务器信息和构造邮件内容等,使用起来相对复杂。

  • 而JavaMailSender则是在JavaMail的基础上进行了封装,提供了更加易用的API接口和自动化的配置选项,使得发送邮件变得更加简单和便捷。

  • 在Spring Boot应用程序中,推荐使用JavaMailSender来发送邮件,因为它可以方便地集成到Spring Boot框架中,并且使用起来非常简单。

新建一个SpringBoot项目

 项目结构:

pom.xml

主要是引入mail依赖

        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>
<?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.3.12.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com</groupId>
	<artifactId>springboot_JavaMail</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot_JavaMail</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>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>

application.properties

  • 特别注意SSL验证,一定要开启,开启SSL验证可以提高邮件传输的安全性,并保护您的邮件内容不受未经授权的访问
  • 下列信息大多在开启邮箱的SMTP服务时,配置说明里有
# 下列信息大多在开启邮箱的SMTP服务时,配置说明里有
# SMTP服务器端口号
spring.mail.port=465
# 提供发送邮件服务的邮箱账号
spring.mail.username=3328518414@qq.com
# 提供发送邮件服务的邮箱授权码
spring.mail.password=xxx
# SMTP服务器主机地址
spring.mail.host=smtp.qq.com
# 是否开启权限验证
spring.mail.properties.mail.smtp.auth=false
# 是否开启SSL验证
spring.mail.properties.mail.smtp.ssl.enable=true
# 是否开启debug模式
spring.mail.properties.mail.debug=true

SpringEmailService

  • SpringEmailService是一个单独的类,它实现了邮件发送功能
package com.springboot_JavaMail;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

@Service
public class SpringEmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    private String subject = "JavaMailSender发送邮件测试";

    private String text = "SpringBoot使用JavaMailSender发送邮件";

    private String to = "3328518414@qq.com";

    private String from = to;

    public void sendSimpleMail() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject(subject); // 主题
        message.setText(text); // 内容
        message.setTo(to); // 收件人
        message.setFrom(from); // 发件人
        javaMailSender.send(message); // 发送邮件
        System.out.println("邮件发送成功!");
    }
}

SpringbootJavaMailApplication

  • 可以在启动类中创建SpringEmailService类的实例并调用其sendSimpleMail()方法
  • 在这个示例中,我们注入了SpringEmailService类的实例,并在run()方法中调用了sendSimpleMail()方法。由于CommandLineRunner接口的存在,run()方法将在启动应用程序时自动执行。
package com.springboot_JavaMail;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootJavaMailApplication implements CommandLineRunner {

	@Autowired
	private SpringEmailService springEmailService;

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

	@Override
	public void run(String... args) throws Exception {
		springEmailService.sendSimpleMail();
	}
}

启动项目,发送成功

 

项目总结

  • 在实际开发中,一般会把邮件发送封装成一个工具类,然后再配置一个只发送邮件的邮箱,最后直接调用工具类完成邮件的发送
  • 22
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戏拈秃笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值