Spring Boot入门系列之:五、Spring Boot整合mail

spring boot 整合 mail 发送邮件 【用户注册以及找回密码】 一.在 pox.xml 中 加入 org.springframework.bootspring-boot-starter-mail 二。创建一个用户实体 /** * . */ @Data @Entity @NoArgsConstructor @AllArgsConstructor @RequiredArgsConstructor public class Member implem 阅读详情

spring-boot-mail

开发环境

开发工具:Intellij IDEA 2018.2.6

springboot: 2.0.7.RELEASE

jdk:1.8.0_192

maven: 3.6.0

spring-boot-mail

SpringBoot 有提供发送邮件的实现,整合也非常方便只需要引入 SpringBoot 整合mail 的 starter 就可以使用 JavaMailSender 封装好的api实现发送邮件的功能。本文使用了freemarker 和thymeleaf 两种模板引擎技术来实现发送模板类型的邮件。

pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <groupId>com.andy</groupId>
    <artifactId>spring-boot-mail</artifactId>
    <version>1.0.7.RELEASE</version>
    <modelVersion>4.0.0</modelVersion>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.spring.platform</groupId>
                <artifactId>platform-bom</artifactId>
                <version>Cairo-SR6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

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

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

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

        <!--生成二维码-->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.3</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.6.RELEASE</version>
                <configuration>
                    <!--<mainClass>${start-class}</mainClass>-->
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
  • 启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author Leone
 * @since 2018-05-09
 **/
@SpringBootApplication
public class MailApplication {
    public static void main(String[] args) {
        SpringApplication.run(MailApplication.class, args);
    }
}

  • freemarker 模板(ftlMail.ftl)
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<div style="width: 600px; text-align: left; margin: 0 auto;">
    <h3 style="color: #005da7;">您好!${(to)!""}</h3>
    <div style="border-bottom: 5px solid #005da7; height: 2px; width: 100%;"></div>
    <div style="border: 1px solid #005da7; font-size: 16px; line-height: 50px; padding: 20px;">
        <div>
            欢迎注册xxx!
        </div>
        <div style="border-bottom: 2px solid #005da7; height: 2px; width: 100%;"></div>
        <div>点击链接激活您的账号!</div>
        <div>
            <span><a href="${(content)!""}">激活</a></span>
        </div>
        <div>
            <img src="https://www.baidu.com/img/xinshouye_7c5789a51e2bfd441c7fe165691b31a1.png" alt="baidu"/>
        </div>
        <div>
            想了解更多信息,请访问 <a href="https://www.baidu.com/">https://www.baidu.com/</a>
        </div>
    </div>
</div>
</body>
</html>
  • thymeleaf 模板(htmlMail.html)
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<div style="width: 600px; text-align: left; margin: 0 auto;">
    <h1>XXX</h1>
    <div style="border-bottom: 5px solid #005da7; height: 2px; width: 100%;"></div>
    <div style="border: 1px solid #005da7; font-size: 16px; line-height: 50px; padding: 20px;">
        <div>
            <p th:text="${to}+' 您好,欢迎注册xxx!!'"></p>
        </div>
        <div style="border-bottom: 2px solid #005da7; height: 2px; width: 100%;"></div>
        <div>请点击下面链接激活您的账号!</div>
        <div>
            <span><a th:href="${content}">激活</a></span>
        </div>
        <div>
            <img src="https://www.baidu.com/img/xinshouye_7c5789a51e2bfd441c7fe165691b31a1.png" alt="baidu"/>
        </div>
        <div>
            想了解更多信息,请访问 <a href="https://www.baidu.com/">https://www.baidu.com/</a>
        </div>
    </div>
</div>
</body>
</html>
  • application.yml
server:
  port: 8083
  servlet:
    path: /

spring:
  application:
    name: spring-boot-mail
  http:
    encoding:
      charset: UTF-8
      enabled: true
# JavaMailSender 邮件发送的配置 我使用的163邮箱作为发送方
  mail:
    host: smtp.163.com
    username: xxx@163.com
    password: xxx
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enabled: true
            required: true
    default-encoding: UTF-8


# thymeleaf 配置
  thymeleaf:
    cache: false
    prefix: classpath:/templates/thymeleaf
    suffix: .html
    mode: HTML
    encoding: UTF-8
    servlet:
      content-type: text/html
# freemarker配置
#  freemarker:
#    template-loader-path: classpath:/templates/freemarker/
#    allow-request-override: false
#    cache: false
#    suffix: .ftl
#    charset: UTF-8
#    content-type: text/html
#    check-template-location: true
#    expose-request-attributes: false
#    expose-session-attributes: false
#    expose-spring-macro-helpers: false


  • MailService.java
package com.andy.mail.service;

import freemarker.template.Template;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.context.IContext;

import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

/**
 * @author Leone
 * @since 2018-05-09
 **/
@Slf4j
@Service
public class MailService {

    @Value("${spring.mail.username}")
    private String from;

    @Autowired
    private JavaMailSender javaMailSender;

    @Autowired
    private TemplateEngine templateEngine;

    //    @Autowired
    private FreeMarkerConfigurer freeMarkerConfigurer;

    private static final Charset CHARSET = StandardCharsets.UTF_8;

    private static final String THYMELEAF_TEMPLATE = "/htmlMail";

    private static final String FREEMARKER_TEMPLATE = "ftlMail.ftl";

    private static final String filePath = "hello.zip";


    /**
     * 发送freemarker模板mail
     *
     * @param to
     * @param subject
     * @return
     * @throws Exception
     */
    public boolean sendFreemarkerMail(String to, String subject, String content) {
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setFrom(from);
            helper.setTo(InternetAddress.parse(to));
            helper.setSubject("[" + subject + " " + LocalDate.now() + "]");
            Map<String, Object> model = new HashMap<>();
            model.put("subject", subject);
            model.put("content", content);
            model.put("to", to);
            Template template = freeMarkerConfigurer.getConfiguration().getTemplate(FREEMARKER_TEMPLATE);
            String text = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
            helper.setText(text, true);
            javaMailSender.send(mimeMessage);
            log.info("send mail success!");
            return true;
        } catch (Exception e) {
            log.error("send mail filed:{}", e);
            return false;
        }
    }

    /**
     * 发送thymeleaf邮件
     *
     * @param to
     * @param subject
     * @return
     * @throws Exception
     */
    public boolean sendThymeleafMail(String to, String subject, String content) {
//        String token = storage(to);
        String token = "xxx";
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, CHARSET.displayName());
            Map<String, Object> map = new HashMap<>();
            map.put(content, token);
            map.put("content", content);
            map.put("subject", subject);
            map.put("to", to);
            IContext context = new Context(Locale.CHINESE, map);
            String process = templateEngine.process(THYMELEAF_TEMPLATE, context);
            messageHelper.setFrom(from);
            messageHelper.setTo(to);
            messageHelper.setSubject("[" + subject + " " + LocalDate.now() + "]");
            messageHelper.setText(process, true);
            javaMailSender.send(mimeMessage);
            log.info("send mail success!");
            return true;
        } catch (Exception e) {
            log.error("send mail filed:{}", e);
            e.printStackTrace();
            return false;
        }
    }


    /**
     * 发送文本邮件
     *
     * @param to
     * @param subject
     * @param content
     */
    public boolean sendSimpleMail(String to, String subject, String content) {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from);
        message.setTo(to);
        message.setSubject(subject);
        message.setText(content);
        try {
            javaMailSender.send(message);
            log.info("send mail success!");
            return true;
        } catch (Exception e) {
            log.error("send mail filed:{}", e);
            return false;
        }
    }

    /**
     * 发送带附件的邮件
     *
     * @param to
     * @param subject
     * @param content
     */
    public boolean sendAttachmentsMail(String to, String subject, String content) {
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(content, true);

            FileSystemResource file = new FileSystemResource(new File(filePath));
            String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
            helper.addAttachment(fileName, file);
            //helper.addAttachment("test"+fileName, file);

            javaMailSender.send(message);
            log.info("send mail success!");
            return true;
        } catch (MessagingException e) {
            log.error("send mail filed:{}", e);
            return false;
        }
    }


    /**
     * 发送正文中有静态资源(图片)的邮件
     *
     * @param to
     * @param subject
     * @param content
     * @param rscPath
     * @param rscId
     */
    public boolean sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId) {
        MimeMessage message = javaMailSender.createMimeMessage();

        try {
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(content, true);

            FileSystemResource res = new FileSystemResource(new File(rscPath));
            helper.addInline(rscId, res);

            javaMailSender.send(message);
            log.info("send mail success!");
            return true;
        } catch (MessagingException e) {
            log.error("send mail filed:{}", e);
            return false;
        }
    }

}

  • MailController.java
package com.andy.mail.controller;


import com.andy.mail.service.MailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

/**
 * @author Leone
 * @since 2018-05-09
 **/
@Slf4j
@Controller
@RequestMapping("/api/mail")
public class MailController {

    @Autowired
    private MailService mailService;

    private static Map<String, Object> content = new HashMap<>();

    static {
        content.put("title", "标题");
        content.put("content", "http://www.baidu.com");
        content.put("to", "james@gmail.com");
    }

    @ResponseBody
    @GetMapping("/send/ftl")
    public String sendFtlMain(String to, String subject, String content, HttpServletRequest request) {
        boolean flag = mailService.sendFreemarkerMail(to, subject, content);
        return String.valueOf(flag);
    }

    @ResponseBody
    @GetMapping("/send/html")
    public String sendHtmlMain(String to, String subject, String content, HttpServletRequest request) {
        boolean flag = mailService.sendThymeleafMail(to, subject, content);
        return String.valueOf(flag);
    }

    @ResponseBody
    @GetMapping("/send/simple")
    public String sendSimpleMain(String to, String subject, String content, HttpServletRequest request) {
        boolean flag = mailService.sendSimpleMail(to, subject, content);
        return String.valueOf(flag);
    }

    @ResponseBody
    @GetMapping("/send/htm")
    public String sendAttachmentsMail(String to, String subject, String content, HttpServletRequest request) {
        boolean flag = mailService.sendAttachmentsMail(to, subject, content);
        return String.valueOf(flag);
    }


    @RequestMapping("/html")
    public String helloHtml(Map<String, Object> map) {
        map.putAll(content);
        return "/htmlMail";
    }

    @RequestMapping("/ftl")
    public String helloFtl(Map<String, Object> map) {
        map.putAll(content);
        return "ftlMail";
    }

}

GitHub

springboot整合mail实现邮件发送 通过上述步骤,我们可以在Spring Boot应用中轻松集成邮件发送功能。从配置邮件服务器到实际发送邮件,Spring Boot提供了一套完整的解决方案。邮件服务的集成不仅可以提升用户体验,还可以增强应用的功能性。希望本文能帮助你快速在你的Spring Boot项目中实现邮件发送功能。本文仅为示例,实际开发中需要根据具体的邮件服务提供商来配置邮件服务器的详细信息,并且出于安全考虑,敏感信息(如邮箱密码)不应直接硬编码在配置文件中,可以使用Spring Boot的配置属性替换功能或环境变量来管理这些敏感信息。 阅读详情

相关推荐

Spring Boot整合Mail实现邮件发送功能实战

在现代企业级应用开发中,邮件发送功能已成为不可或缺的一环,广泛应用于用户注册验证、密码重置、系统告警通知等核心业务场景。Spring Boot凭借其“约定优于配置”的设计理念,极大地简化了Java应用的开发流程,而与邮件服务的整合更是体现了其强大的生态集成能力。尽管自动配置足够通用,但在某些场景下仍需定制化,如设置更多的 SMTP 扩展属性或更换 Session 工厂。@Bean// 开启调试日志。

weixin_35636570的博客 1510

SpringBoot快速实现发送邮件

前言:Spring提供了非常好用的JavaMailSender接口实现邮件发送。由于SpringBoot的Starter模块也为此提供了自动化配置,所以在引入了spring-boot-starter-mail依赖之后,会根据配置文件中的内容去创建JavaMailSender实例,因此我们可以直接在需要使用的地方直接@Autowired来引入邮件发送对象。 SpringBoot中发送邮件具体的使用步骤如下 1、添加Starter模块依赖 2、添加Spring Boot邮箱配置(QQ/网易163/Gma

何哥的博客 2万+

spring-boot-starter-mail-2.2.4.RELEASE.jar

maven配置了阿里云的仓库,不能下载spring-boot-starter-mail的依赖,从官网下载的,希望对有同样问题的小伙伴有用

SpringBoot整合spring-boot-starter-mail 发送 QQ邮件

1、设置QQ邮箱,查看流程:QQ邮箱——>设置——>账户——>开启POP3/SMTP服务,生成授权码:邮件开启xxxxxxxxx。3、配置yaml相关信息。2、导入mail依赖。4、编写发送邮件模块。

码农践行 766

springboot 整合spring-boot-starter-mail 发邮件.rar

springboot 整合spring-boot-starter-mail 发邮件

CKAD-CN 考试知识点分享(2) CronJob

成功创建 CronJobppi,每 5 分钟执行一次计算任务;配置了和;设置,超时自动终止;确保 Pod 不重启;手动创建ppi-testJob 验证功能正常;所有任务要求均已满足。

轻的博客 331

SpringBoot整合邮件发送

SpringBoot整合邮件发送

weixin_50117748的博客 189

macOS 12.7.6部署Ollama+Dify避坑指南

本文介绍了在macOS 12.7.6系统下部署Ollama和Dify的详细步骤及避坑指南。主要内容包括:1)关闭系统完整性保护(SIP)以允许修改系统目录;2)安装特定版本的Docker(2.1.0.5)和docker-compose(v2.38.2)以避免兼容性问题;3)配置Ollama服务并下载nomic-embed-text和deepseek-r1:7b模型;4)针对macOS调整Dify的docker配置文件,包括延长超时时间、修改存储路径、增加资源限制等关键设置。文中提供了完整的命令操作步骤和配置

Hi20240217的博客 3101

SpringBoot发送邮件(SpringBoot整合JavaMail)

导入JavaMail都maven坐标。 进入自己(发送邮件方)QQ邮箱 找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务区域,如下 点击开启POP3/SMTP服务,并按要求发送短信 发送成功后,点击“我已发送”会得到如下授权码(保存好密码配置application.yml时会用),然后点击确定 在application中做如下配置 接口的实现 测试 发送复杂邮件 发送图片与链接 发送附件 在上面基础上设置如下.........

baiqi123456的博客 2336

国产麒麟系统中的PaddleOCR离线绿色部署:高效安全的文字识别新纪元

摘要:本文详细介绍了PaddleOCR在银河麒麟V10SP1系统上的离线部署方案。通过Conda虚拟环境隔离依赖,采用离线包安装方式实现无网络部署,支持80+语言识别。重点讲解了模型量化剪枝优化、多线程处理等性能调优技巧,并提供了完整的OCR识别代码示例。该方案具有数据本地化处理的安全优势,适用于医疗票据数字化等对隐私要求严格的场景,同时解决了模型加载失败、内存不足等常见问题。

墨夶的博客 1228

普罗米修斯监控达梦数据库集群

-----------------------------------新增文件---------------------------------------注:图上即为启动成功,如果没有问题,则使用nohup后台启动程序。官网地址:https://github.com/gy297879328/dameng_exporter。注:prometheus的对数据库的指标采集如果高于60s一次,请手动修改提供表盘中的计算值。修改dameng_exporter.config配置文件,修改账号密码的部分。

weixin_49985403的博客 1681

SpringBoot邮件发送-maven项目(禁止水贴001)

1.maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs...

liurui50的博客 1133

小孙学变频学习笔记(二)变频器的逆变电路

本文主要介绍了变频器中逆变电路的核心器件IGBT及其应用。IGBT是一种电压控制型三端半导体开关器件,具有开关频率高、功耗低的优点,在变频器中仅使用截止和饱和导通状态。文章详细分析了IGBT的结构特性、与晶闸管的区别,以及由四个IGBT组成的直流转交流逆变电路原理。重点阐述了IGBT并联反向二极管的作用:提供电流反向通路、避免反向电压损坏器件、提高开关效率等。最后提供了相关学习参考网址供读者进一步研究。

qq_43091070的博客 1195

Spring Boot整合Mail工具:简化邮件发送流程

在现代Web应用中,邮件发送功能是一个常见需求,无论是用于用户注册验证、密码重置还是日常的业务通知。Spring Boot作为一个轻量级的Java应用框架,提供了强大的自动配置功能,使得整合各种工具变得异常简单。本文将详细介绍如何在Spring Boot项目中整合Mail工具,实现邮件的发送功能,并包括如何开启QQ邮箱的SMTP服务并获取授权码的步骤。

shiwen165的博客 2016

Qt入门教程100篇(已完结)

Qt5入门教程,Qt6入门教程。包含了: Qt环境搭建篇、Qt数据类型篇、Qt中STL篇、Qt核心篇、Qt核心对象QObject篇、Qt基础控件篇、Qt对话框篇、Qt高级控件篇、Qt数据模型篇、QSS篇、Qt文件篇 、Qt硬件编程、Qt的一些demo、Qt项目开发篇。......

小鱼酱的博客 15万+

Codex 实战 Skills:如何用 Skill 让 AI 模拟人工点击,自动完成复杂的前端表单测试

本文介绍如何构建基于Selenium WebDriver的AI Agent技能,实现自动化UI测试流程。主要内容包括: 环境搭建:配置无头Chrome浏览器环境,使用WebDriver Manager自动管理驱动 核心技能开发:通过ID、CSS Selector、XPath等策略定位元素,实现显式等待机制 交互模拟:使用ActionChains模拟鼠标悬停等复杂操作 稳定性优化:解决异步加载问题,确保测试可靠性 Skill封装:将功能模块化,使AI能通过自然语言指令操作Web界面 该方案突破了传统自动化测试

yueyeguzhuo的专栏 147

Spring Boot 整合 spring-boot-starter-mail 实现邮件发送和账户激活

在我们日常开发中,用户注册后需要对用户进行一个激活,通过邮件激活账户是一种常见的用户验证机制。这里博主将详细介绍如何使用实现邮件发送和账户激活功能,并构建一个简单的Spring Boot项目实现代码示例和关键技术点。Spring Boot的starter模块提供了自动化配置,所以在引入了依赖之后,会根据配置文件中的内容去创建实例,我们只需要在使用的地方直接@Autowired来引入

Micro麦可乐的博客 1万+

LOFIC / 全局快门在移动端的可行性:曝光容限、读出噪声与算力预算

手机端引入 LOFIC 与全局快门的核心权衡在于:在有限像素面积与功耗下,如何换取更高的动态范围与运动场景鲁棒性。LOFIC 通过侧向溢流到积分电容扩大满井并保持较高转换增益,全局快门在帧内一次性采样消除行时序伪影,但需付出像素填充率、读出噪声与片上存储功耗的代价。本文以工程可实操为目标,给出像素与读出链的简化模型、曝光损益测算、数据率与带宽估算、端到端算力与热预算方法,配套寄存器配置流程、帧内/帧间切换策略与验证清单,帮助在真实移动 SoC 与 ISP 约束下完成可行性评估与原型落地。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1139

spring boot集成spring-boot-starter-mail邮件功能

前情提要 以目前IT系统功能来看,邮件功能是非常重要的一个功能。例如:找回密码、邮箱验证,邮件动态码、忘记密码,邮件营销等,都需要用到邮件功能。结合当下最流行的spring boot微服务,推出了spring-boot-starter-mail邮件支持包。 功能使用 引入maven包 <dependency> <groupId>org.springframework.b...

qinshengfei的专栏 4853

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring Boot——基于spring-boot-starter-mail发送邮件的 Service 服务类DEMO

前言 发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在Spring Boot提供了一套集成spring-boot-starter-mail的更简易使用的封装。 基本概念 spring-boot-starter-mail: Spring框架提供了一个有用的实用程序库,用于发送电子邮件,使...

无限迭代中...... 5309

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Spring Boot(十二)集成spring-boot-starter-mail发送邮件

项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot(十二)集成spring-boot-starter-mail发送邮件,标记地址: https://github.com/FrameReserve/TrainingBoot/releases/tag/0.0.12 pom.xml

a286352250的博客 3万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

springboot整合mail

方法一 java自带的mail javax.mail <groupId>javax.mail</groupId> <artifactId>mail</artifactId> 方法二 springframework集成的 org.springframework.boot spring-boot-starter-mail &lt...

AriesTina的博客 624

spring boot整合mail

1.添加依赖 </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</...

133

boot集成的邮箱 spring_spring boot集成spring-boot-starter-mail邮件功能

前情提要以目前IT系统功能来看,邮件功能是非常重要的一个功能。例如:找回密码、邮箱验证,邮件动态码、忘记密码,邮件营销等,都需要用到邮件功能。结合当下最流行的spring boot微服务,推出了spring-boot-starter-mail邮件支持包。功能使用引入maven包org.springframework.bootspring-boot-starter-mail相关参数配置(以QQ邮箱为...

weixin_35600835的博客 1883

SpringBoot整合Mail发送邮件

使用QQ邮箱,则需要先在QQ邮箱中开启POP3/SMTP服务。 如何设置?步骤如下: 打开qq邮箱 --> 设置 --> 账户 -->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 --> POP3/SMTP服务--> 开启 开启后得到授权码,这个授权码会配置到我们的配置文件中(提前复制保存一下): po...

刘鹏博的博客 989

Spring Boot4(Spring Boot 整合mvc 实现增删改查 Spring Boot 事务管理 异步任务 定时任务调度 整合Mail 整合redis)

编程式指的是通过java代码去控制数据库的事务处理,这里主要讲的是声明式事务项目结构:数据库表结构:POJO实体类层,Mapper层、Service层、Config层都与上一个例子相同,这里省略Controller层:1.给要开启的事务类或者方法上添加@Transactional注解2.启动类上加@EnableTransactionManagement//开启事务只需要两个注解就可以完成事务管理模拟出现了异常:说明事务已经被回滚,事务生效!

Stringzhua的博客 545
上一篇: Spring Boot入门系列之:三、Spring Boot整合Mybatis
下一篇: Spring Boot入门系列之:六、Spring Boot整合spring-batch
exklin
博客等级 码龄9年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值