返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot发送邮件功能的实现详解
  • 124
分享到

Springboot发送邮件功能的实现详解

2024-04-02 19:04:59 124人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言成果展示表设计引入依赖邮箱工具类mapperXmlServiceimplEmailServiceImpl写完后要去进行配置获取授权码总结前言 大多数小伙伴在练习与学习的过程中

前言

大多数小伙伴在练习与学习的过程中在验证时大都使用或验证码,但是验证码相对而言自己的参与只停留在自己的自己写的点击刷新方法上,那有没有什么方法能让我们的互动不止限于网页呢,那就来学一下如何给自己发送一封邮件吧,这个功能我预想是跟用户绑定的所以设计时会与用户有一定的联系。

成果展示

表设计

这里只是为了让我们成功发送邮件所以并不用设计的多么复杂,只需要在用户表中添加两个字段username ,email_address 实体类中是String 表中是varchar.

引入依赖

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

邮箱工具类


public class EmailUtil {
    public static boolean isValidEmailAddress(String email) throws AddressException {
        boolean result = true;
        InternetAddress internetAddress = new InternetAddress(email);
        try {
            internetAddress.validate();
        } catch (AddressException e) {
            e.printStackTrace();
            result = false;
        }
        return  result;
    }
}

这里并不需要自己去写校验方法,直接调用InternetAddress 的validate方法就行。

mapper

用来通过邮箱查询用户,看是否已被占用

User selectOneByEmailAddress(String emailAddress);

Xml

  <select id="selectOneByEmailAddress" parameterType="java.lang.String" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from xatu_mall_user
    where email_address = #{email_address,jdbcType=VARCHAR}
    limit 1
  </select>

Service

userService

boolean checkEmailReGIStered(String emailAddress);

impl

 @Override
    public boolean checkEmailRegistered(String emailAddress) {
        User user = userMapper.selectOneByEmailAddress(emailAddress);
        if (user != null) {
            return false;
        }
        return true;
    }

EmailService

public interface EmailService {
    void sendSimpleMessage(String to, String subject, String text);
}

Impl


@Service
public class EmailServiceImpl implements EmailService {
    @Autowired
    private JavaMailSender mailSender;
    @Override
    public void sendSimpleMessage(String to, String subject, String text) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(Constant.EMAIL_FROM);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(text);
        mailSender.send(simpleMailMessage);
    }
}

我把常用值写在Constant里了,这里直接填用来发送的邮箱就行,要确保能自己能登陆这个邮箱,后面要去获取一个码。

Controller

 @PostMapping("/sendEmail")
    @ResponseBody
    public apiRestResponse sendEmail(@RequestParam("emailAddress") String emailAddress)
            throws XatuMallException, AddressException {
        //检查邮件地址是否有效,检查是否已注册
        boolean validEmailAddress = EmailUtil.isValidEmailAddress(emailAddress);
        if(validEmailAddress) {
            boolean emailPased = userService.checkEmailRegistered(emailAddress);
            if (!emailPased) {
                return ApiRestResponse.error(100018, "邮箱已注册");
            } else{
                //发送邮件
                emailService.sendSimpleMessage(emailAddress,"主题是测试","Helllo this is a E-mail");
                return ApiRestResponse.success();
            }
        }else{
            return ApiRestResponse.error(100020,"非法邮箱");
        }
    }

写完后要去进行配置

application.properties

spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=1228625399@qq.com
spring.mail.passWord=*****************
spring.mail.default-encoding=utf-8
spring.mail.properties.mail.smtp.auth=true

这里我使用的是qq邮箱,但是听说他这个垃圾邮件判定等级自己不好改有的是用阿里云邮箱

只用注意两个点 username 写自己的邮箱地址

获取授权码

下一个password不是邮箱密码哈,下面说怎么获取这个授权码

进去登录好了以后点击账户,找到下面这个区域

注意我们打开前两个 然后扫码获取那个授权码,把它复制下来添加到配置文件的password栏。

总结

这个技术是很简单的,但是用好它相比于普通的在网页上加验证码我们先声明一个数组,调用函数去把数组打乱去去每次获取验证码,把验证码存起来作为text发送到用户邮箱用来注册,这个方法相比点击验证码就更加有趣了。当然也能用于其他更多的方面~

到此这篇关于SpringBoot发送邮件功能的实现详解的文章就介绍到这了,更多相关Springboot发送邮件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Springboot发送邮件功能的实现详解

本文链接: https://lsjlt.com/news/168088.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Springboot发送邮件功能的实现详解
    目录前言成果展示表设计引入依赖邮箱工具类mapperXmlServiceimplEmailServiceImpl写完后要去进行配置获取授权码总结前言 大多数小伙伴在练习与学习的过程中...
    99+
    2024-04-02
  • php邮件发送功能实现详解
    目录发送邮件方法配置php环境如何知道SMTP服务名称php发送邮箱发送邮件方法 php中有很多方法发送邮件,其中需要发送端安装邮箱客户端才能发送的,有不需要安装客户端即可发送的。第...
    99+
    2024-04-02
  • springboot发送邮件功能的实现代码
           发邮件是一个很常见的功能,在java中实现需要依靠JavaMailSender这个接口。在spri...
    99+
    2024-04-02
  • 如何用springboot实现发送邮件功能
    本篇内容介绍了“如何用springboot实现发送邮件功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2023-06-20
  • C#实现SMTP邮件附件发送功能详解
    目录实践过程效果代码实践过程 效果 代码 public partial class frmSend : Form { public frmSend() { ...
    99+
    2022-12-28
    C# SMTP邮件附件发送 C# SMTP邮件发送 C# 邮件发送
  • Python实现邮件发送功能的方法详解
    目录利用 python 发送普通邮件认识发送邮件流程认识邮件协议smtplib 模块email 包发送邮件小案例发送邮件的避坑总结邮件自动化篇章所需的新模块: smtplib 邮件协...
    99+
    2024-04-02
  • Python实现邮件发送功能的示例详解
    想实现发送邮件需要经过以下几步: 1、登录邮件服务器 2、构造符合邮件协议规则要求的邮件内容 3、发送 Python对SMTP支持有smtplib和email两个模块,email负责...
    99+
    2022-11-13
    Python邮件发送 Python邮件
  • SpringBoot实现发送邮件、发送微信公众号推送功能
    目录SpringBoot实现发送邮件pom.xmlapplication.yml代码实现SpringBoot实现发送微信公众号推送pom.xml代码实现SpringBoot实现发送邮...
    99+
    2024-04-02
  • SpringBoot实现邮件发送功能的姿势分享
    目录前言I. 项目环境1. 项目依赖2. 配置II. 邮件发送1. 简单文本邮件发送2. html发送3. 添加附件4. Freemaker模板5. 测试与小结III. 不能错过的源...
    99+
    2024-04-02
  • springboot整合邮件发送功能
     pom依赖 <dependency> <groupId>org.springframework.boot</groupId...
    99+
    2024-04-02
  • Node.js实现发送邮件功能
    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 var nodemailer = require("nodemailer"); var mailTitle='htt...
    99+
    2022-06-04
    发送邮件 功能 Node
  • Java实现邮件发送功能
    Java实现邮件发送的具体代码,供大家参考,具体内容如下 一、邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责...
    99+
    2024-04-02
  • Spring实现邮件发送功能
    前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender,关于邮件服务器的设置就不在这里说了,直接去QQ邮箱设置下就好,下面看下主要的步骤: ...
    99+
    2023-05-30
    spring 邮件发送 实现邮件
  • Springboot实现发送邮件
    本文实例为大家分享了Springboot实现发送邮件功能的具体代码,供大家参考,具体内容如下 第一章 背景介绍 1.1 使用场景 1、注册验证; 2、网站营销; 3、安全的最后一道防...
    99+
    2024-04-02
  • SpringBoot整合Mail发送邮件功能
    目录前言Maven依赖使用QQ邮箱演示发送普通邮件验证码案例前言 我们在网站上注册账号的时候一般需要获取验证码,而这个验证码一般发送在你的手机号上还有的是发送在你的邮箱中,注册,账号...
    99+
    2024-04-02
  • SpringBoot如何实现发送邮件、发送微信公众号推送功能
    这篇文章主要介绍了SpringBoot如何实现发送邮件、发送微信公众号推送功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SpringBoot实现发送邮件&emsp...
    99+
    2023-06-29
  • python实现SMTP邮件发送功能
    一直想着给框架添加邮件发送功能、所以整理下python下邮件发送功能 首先python是支持邮件的发送、内置smtp库、支持发送纯文本、HTML及添加附件的邮件。之后是邮箱、像163、qq、新浪等邮箱默认关...
    99+
    2022-06-04
    邮件发送 功能 python
  • TP5+PHPMailer 实现发送邮件功能
    目录 准备工作 一、PHPMailer是什么? 二、使用步骤 1.查看本机是否开放25端口 2.打开邮箱启动邮箱的SMTP服务 3.下载PHPPHPMailer资源 4.代码编写 总结 准备工作 使用QQ邮箱或者163网易邮...
    99+
    2023-09-23
    php
  • Springboot整合实现邮件发送的原理详解
    目录开发前准备基础知识进阶知识加入依赖配置邮件测试邮件发送通常在实际项目中,也有其他很多地方会用到邮件发送,比如通过邮件注册账户/找回密码,通过邮件发送订阅信息等等。SpringBo...
    99+
    2024-04-02
  • springboot整合mail实现邮箱的发送功能
    第一步添加mail的依赖 <!--引入mail的依赖 --> <dependency> <groupId>org.springfr...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作