通过qq邮箱解决验证码收费问题

在开发外卖项目时,作者发现短信模块对学生党不友好,需要购买套餐和企业认证。通过探索,作者找到了QQ邮箱的SMTP服务,提供了免费且便捷的邮件发送功能。文章详细介绍了如何配置QQ邮箱的授权码,以及在SpringBoot应用中设置邮件发送的步骤,包括YML配置、添加依赖和编写Controller代码,最后展示了发送邮件的示例。
摘要由CSDN通过智能技术生成

在学习黑马程序员外卖项目中发现手机短信这一模块对学生党太不友好,需要购买短信套餐不说还要有企业认证之类的才可以审核,在苦苦寻找了多个短信接口后终于放弃,结果以外发现QQ邮箱具备同样的功能,不仅免费而且配置方便。

1.首先登录QQ邮箱

 找到设置选项

2.选择账户,下滑找到如下配置

通过简单的步骤开启服务,默认会生成一个授权码代表开启成功!

如果授权码忘记可以通过管理服务的安全设置重新生成一个授权码

在设备管理中可以对泄漏的授权码禁用

3.复制授权码配置yml文件

spring:  
  mail:
    # 配置 SMTP 服务器地址
    host: smtp.qq.com
    # 发送者邮箱
    username: 123456789@qq.com
    # 配置密码注意是刚刚申请到的授权码
    password: abcdefghijklm
    # 端口号465或587
    port: 587
    # 默认的邮件编码为UTF-8
    default-encoding: UTF-8
    # 配置SSL 加密工厂
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
        #表示开启 DEBUG 模式邮件发送过程的日志会在控制台打印出来
        debug: true

4.添加依赖

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

5.编写Controller


import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;


@RestController
@RequestMapping("email")
public class EmailController {

    @Resource
    private JavaMailSender javaMailSender;

    //读取yml文件中username的值并赋值给form
    @Value("${spring.mail.username}")
    private String from;

    @RequestMapping("sendEmail")
    public String sendSimpleMail(@RequestParam(value = "emailReceiver") String emailReceiver) {
        // 构建一个邮件对象
        SimpleMailMessage message = new SimpleMailMessage();
        // 设置邮件发送者
        message.setFrom(from);
        // 设置邮件接收者
        message.setTo(emailReceiver);
        // 设置邮件的主题
        message.setSubject("登录验证码");
        // 设置邮件的正文
        //code自行设置,不做实现
        String code="";
        String text = "您的验证码为:" + code + ",请勿泄露给他人。";
        message.setText(text);
        // 发送邮件
        try {
            javaMailSender.send(message);
            return "发送成功";
        } catch (MailException e) {
            e.printStackTrace();
        }
        return "发送失败";
    }
}

最后测试一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天辰尽落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值