spring实现邮件发送功能

本文介绍了如何在Spring Boot项目中实现邮件发送功能。首先,以QQ邮箱为例,介绍了开启SMTP服务并获取授权码的步骤。接着,添加了Spring Boot项目的相关依赖,并在`application.properties`中配置邮件参数。然后,创建了邮件接口和服务类,包括发送普通邮件和HTML邮件的方法。最后,编写了测试类,展示了发送普通邮件和HTML邮件的示例,确保邮件发送功能的正确性。
摘要由CSDN通过智能技术生成

1.1准备工作

1.下面以 QQ 邮箱为例,其他的邮箱的配置也大同小异。

登录 QQ 邮箱,点击设置->账户,

开启IMAP/SMTP服务,并生成授权码。

之后把生成的授权码记下来,后面要用。

    1. 加入依赖

首先创建一个 Spring Boot 项目,然后在 pom.xml 加入如下依赖(其中 thymeleaf 是为了发送html邮件):

1.3创建邮件配置

  1. 在配置文件 application.properties 中配置邮件的相关参数,具体内容如下:

这个配置文件时自带生成的,不需要自己去创建,直接在里面添加内容就好了

其中指定了邮件的协议、端口以及邮件账户和授权码等。

注意:想授权码后面不能有空格,不然会报错。

1.4编写邮件接口和工具类

  1. 关于接口类---MailSenderSrvServices类

方法sendEmail()适用于普通邮件的发送

方法sendHtmlEmail()适用于html邮件的发送

  1. 关于工具类---MailSenderSrvServiceImpl 类

1)注:这里我之前用的是javaMailSenderImpl实现类,但发现使用它要自己定义一个bean,不然它没发发现它是一个bean,注解@Autowied就用不了,之后询问老师老师给我写了一个声明类

虽然之后@Autowied能用上了,但是后面运行时就出现了配置文件里面设置的参数值全为null,连接不上smtp主机,所以之后就在网上看了还有一个实现类javaMailSender,他们都是Spring官⽅提供的集成邮件服务的接⼝和实现类,而且这个不用自己去定义一个bean,所以我就选择了用javaMailSender类来实现。

2)注意:这里value用于获取位于application.properties中配置的属性。

意思是这两个方法发送邮件是发送人统一都是3058188235@qq.com这个。

  1. 这里通过@Autowied注入获取对象是有原图的,因为通过IOC容器获取的对象带有自动配置的配置信息,而自己直接new出来的对象没有配置信息,如果通过直接new会出现后面的host跟其他配置文件中的值参数都为null。

1.5编写测试类

  1. 实现普通邮件发送

  1. 这里的JavaMailSender是我用来查看自己的主机是否配置正确。

2)

这个是为了实现把html文档发送出去的

运行结果如下:

  1. 实现html邮件的发送

如在html中制作一张成绩单,再把这个成绩单发送出去。

1).成绩单写在score.xml中,放在resource下面

2).测试类如下:

注意:

Context  con = new Context();

是利用 Thymeleaf 模板构建 html 文本

运行结果如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值