如何配置好用Spring Boot发送邮件

news/2025/2/26 7:26:25

第1步:在Spring Boot工程中的pom.xml中添加一个专门应用于mail的starter。

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

第2步:配置mail的相关信息。

#application.properties文件
spring.mail.username=448099205@qq.com
spring.mail.password=xxxxxxxxxxxxxxxx
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true



#application.yml文件(作用与上面的application.yml文件等效)
spring:
  mail:
    username: 1580872967@qq.com
    password: xxxxxxxxxxxxxxxx
    host: smtp.qq.com
    properties:
      mail:
        smtp:
          ssl:
            enable: true

注:这里的password不是QQ邮箱的密码,是授权码。

获取授权码的具体方法:登录进QQ邮箱后,点击上方的设置,再单击账户,在下方开启所有的服务,然后点击生成授权码,验证安全过后将生成的授权码复制粘贴到Spring Boot配置文件的password那里即可。

package com.example.demo;
 
import org.junit.Test;
import org.junit.runner.RunWith;
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 org.springframework.test.context.junit4.SpringRunner;
 
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.UnsupportedEncodingException;
 
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
    @Autowired
    private JavaMailSender mailSender;
 
    @Test
    public void test() throws MessagingException, UnsupportedEncodingException {
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        //设置发件人(第2个参数设置的是昵称,可以不设置)
        helper.setFrom("448099205@qq.com", "db1995");
        //设置主题
        helper.setSubject("Title");
        //设置正文(第2个参数设为true才可以在第1个参数中写HTML代码,否则解析为普通文本)
        helper.setText("<h1 style='color: #654321;text-align: center;'>H1 Tag</h1><p>Some text...</p>", true);
        //设置收件人(也可以传入一个String[]数组实现向多个目标发送)
        helper.setTo("7104438@qq.com");
        mailSender.send(message);
    }
}

第4步:查看邮箱验证是否收到邮件。
在这里插入图片描述

邮件果然已经发送到了目标邮箱中,完美!

还未尝试过的小伙伴们快来试试吧,说不定你们连三分钟都不用就搞定了~


http://www.niftyadmin.cn/n/1320138.html

相关文章

UML工具 ArgoUML

ArgoUML是一个领先的开源UML模型工具&#xff0c;它支持UML 1.4的所有标准&#xff0c;可以运行于任何Java平台上。 开发语言&#xff1a; Java 操作系统&#xff1a; 跨平台 软件主页&#xff1a; http://argouml.tigris.org/文档地址&#xff1a; http://argouml-stats.tigr…

JavaScript获取元素的方法,如何获取元素

获取页面元素的方式 1.通过js的dom方法:可以使用内置对象 document 上的 getElementById 方法来获取页面上设 置了 id 属性的元素,获取到的是一个 html 对象,然后将它赋值给一个变量. 获取页面元素那么必须将获取元素的代码块放置在事件中 如果把 javascript 写在元素的上面,就…

react 之 fetch 登录请求formData提交参数

1、 react 表单 按照以往 js 获取表单数据的方法&#xff0c;当然是获取到该 input 的 ID&#xff0c;然后根据 id 定位后获取到其 value 值&#xff0c;但是很可惜&#xff0c;react 不能这样做。 react 对表单元素做了优化处理&#xff0c;对其进行抽象处理&#xff0c;使其…

dba和sysdba的区别 转载

看见Csdn的Oracle技术版块有人提出关于dba和sysdba的一些困惑&#xff0c;这里详细的介绍一下两者的区别。 dba是Oracle里的一种对象&#xff0c;Role 和User一样&#xff0c;是实实在在存在在Oracle里的物理对象&#xff0c;而sysdba是指的一种概念上的操作对象&#xff0c;在…

经典文案的两个万能套路,恭喜你在发文前看见了| 黎想

是啊&#xff0c;写文案&#xff0c;很难。 一些理论派文案没写过几句文案&#xff0c;但是啊&#xff0c;把各种创意奖项——什么克里奥、金铅笔、戛纳的获奖案例看了一遍又一遍&#xff1b;知道了什么是X型文案、Y型文案&#xff0c;好文案和坏文案的区别&#xff1b;清楚文案…

间歇性失业了

囧失业了......无语....老板是好人哦&#xff0c;不过资本家就是资本家了整个部门从我开始基本就都没了不对&#xff0c;是技术那条线都没了。市场和销售还继续着未来&#xff1f;38岁了&#xff0c;看机会吧IT技术这个饭碗真不好拿呀。PS:各位有缘看见的有上海的基于.NET或项目…

新媒体推广之标题写作的4项原则+6大元素,爆款标题一招就够了! | 黎想

标题的重要性想必大家都是有目共睹的&#xff0c;不论是新媒体从业者&#xff0c;还是其他新闻平台工作者&#xff0c;想必大家都知道标题的重要性&#xff01;想让用户在茫茫书海中打开你的文章&#xff0c;你就需要在两秒内吸引眼球&#xff08;因为用户浏览标题的时间只有2秒…

[转] 两篇关于flash 职业和webgame的文章

第一篇转自:http://flashteam.tencent.com/post/52/诠释flash的职业发展道路/ 作为极少数的还活着的纯flash枯骨之一&#xff0c; 在经历了从mm到adobe&#xff0c;从as1到as3&#xff0c;从当年flash等同于动画的代名词&#xff0c;到当今的flash程序员大批的崛起的时代&#…