文章目录

  • 前言
  • 一、开启SMTP邮箱配置
  • 二、spring-mail
  • 1.引入依赖
  • 2.yml配置
  • 3.使用
  • 二、hutool-mail
  • 1.引入hutool
  • 2.在resource下新增mail.setting
  • 3.使用
  • 总结



前言

发送邮件:

目前比较简单的有两种方式实现:

  1. spring-mail
  2. huool-mail

现在看下两种方式

一、开启SMTP邮箱配置

两种方式都需要开启邮箱配置,这里以qq邮箱为例:

qq邮箱启用邮件服务

1、什么是授权码?

授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。

适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。

2、怎么获取授权码?

在 账号与安全 --安全设置--SMTP/IMAP服务 中开启服务并获取授权码

3、在第三方客户端怎么设置?

在第三方客户端的密码框里面输入16位授权码进行验证。

java邮件发送_java

二、spring-mail

1.引入依赖

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

2.yml配置

spring:
  mail:
    host: smtp.qq.com # SMTP服务地址
    port: 465 # SMTP端口
    username: jimolvxing@qq.com # 邮箱 改成自己的
    password: 16位字符 # SMTP中的密码 改成自己的
    default-encoding: UTF-8 #默认编码格式
    properties:
      mail:
#        debug: true #启动debug调试
        smtp:
          ssl:
            enable: true

3.使用

@SpringBootTest
class SendEmailTest {

    @Autowired
    private JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() {

        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(Objects.requireNonNull(javaMailSender.getUsername()));
        simpleMailMessage.setSubject("测试邮件");
        simpleMailMessage.setText("测试邮件内容");
        simpleMailMessage.setTo("123@qq.com");
        javaMailSender.send(simpleMailMessage);
    }

}

java邮件发送_客户端_02

二、hutool-mail

1.引入hutool

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.17</version>
</dependency>

2.在resource下新增mail.setting

新增一个文件: mail.setting

host = smtp.163.com
port = 465
# 邮箱 改成自己的; 寂寞旅行为别名
from = 寂寞旅行<jimolvxing@qq.com>
# 邮箱 改成自己的
user = jimolvxing@qq.com
 # SMTP中的密码 改成自己的
pass = 16位字符 
startttlsEnable = true

3.使用

public class SendEmail {

    public static void main(String[] args) {
        MailUtil.send(CollectionUtil.newArrayList("123@qq.com"), "验证码",
                RandomUtil.randomNumbers(4), false, null);
    }
}

java邮件发送_客户端_03

总结

这样就实现了邮箱的发送,这里两种方式,其实配置几乎是一样的,可以照着稍微改改即可,然后端口号其实是25的,由于不安全,这里启用了ssl,所以全部都需要改为465端口;