使用SpringBoot发送邮件

电子邮件服务器

电子邮件服务器类比于现实中的邮局。用户发邮件时,会将邮件发送到邮件服务器,邮件服务器将邮件再发送到接收方的电子邮箱中。

邮件服务器又可以分为两种类型:

  • SMTP邮件服务器:替用户发送邮件和接收外面发送给本地用户的邮件。

  • POP3/IMAP邮件服务器:帮助用户读取SMTP邮件服务器接收进来的邮件。

邮件传输协议

邮件传输协议有如下几种

  • SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。

  • POP3协议:全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信规则。

  • IMAP协议:全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议的一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则。

邮箱开启SMTP/IMAP服务

以QQ邮箱为例

开启后需要生成授权码。

我为什么选择SpringBoot框架来发送邮件

我们来看看纯Java代码发邮件。

send方法就如此之长,而SpringBoot将发送功能封装好了。接下来你将看到用SpringBoot发送邮件是如何的简单。

SpringBoot发送邮

导入Maven jar包

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

<!--模板引擎-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

这里的模板引擎后面需要,这里先导入进来。

application.properties文件配置

#邮件配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=1587xx3453@qq.com
spring.mail.password=yurzjzmreurpgfdghalouke
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

如果是QQ邮箱发送,你只需要修改usernamepasswordpassword为上面生成的授权码,不是你邮箱的登录密码哦。

编写邮件发送方法

发送结果

如果我们要发送附件

发送结果如下图

如果需要在正文插入图片

发送结果如下

当然我们也可以使用模板引擎

resources/templates目录下创建文件thymeleaf-mail.html文件。

thymeleaf-mail.html内容如下

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>嗨!欢迎关注我的博客:Lvshen的技术小屋:</p>
<table border="1">
    <tr>
        <td>姓名</td>
        <td th:text="${username}"></td>
    </tr>
    <tr>
        <td>性别</td>
        <td th:text="${sex}"></td>
    </tr>
    <tr>
        <td>爱好</td>
        <td th:text="${hobby}"></td>
    </tr>
</table>
<div style="color: #ff1a0e">关注我获取Java学习资料哦</div>
</body>
</html>

编写发送代码

测试结果如下

如果你没有开发过邮件发送或正在开发邮件发送的功能,希望这篇文章可以帮到你。

往期推荐

扫码二维码,获取更多精彩。或微信搜Lvshen_9,可后台回复获取资料

1.回复"java" 获取java电子书;


2.回复"python"获取python电子书;


3.回复"算法"获取算法电子书;


4.回复"大数据"获取大数据电子书;


5.回复"spring"获取SpringBoot的学习视频。


6.回复"面试"获取一线大厂面试资料


7.回复"进阶之路"获取Java进阶之路的思维导图


8.回复"手册"获取阿里巴巴Java开发手册(嵩山终极版)


9.回复"总结"获取Java后端面试经验总结PDF版


10.回复"Redis"获取Redis命令手册,和Redis专项面试习题(PDF)


11.回复"并发导图"获取Java并发编程思维导图(xmind终极版)

另:点击【我的福利】有更多惊喜哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值