SpringBoot 集成短信和邮件的配置示例详解

下面我将详细讲解“SpringBoot 集成短信和邮件的配置示例详解”的完整攻略。

1. 集成短信

1.1. 添加依赖

pom.xml 中添加阿里云短信 SDK 的依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.0.3</version>
</dependency>

1.2. 配置参数

application.yml 文件中添加阿里云短信相关的配置参数:

aliyun:
  access-key-id: # 阿里云 AccessKeyId
  access-key-secret: # 阿里云 AccessKeySecret
  sms:
    sign-name: # 签名名称
    template-code: # 短信模板编号

1.3. 编写代码

@Service
public class SmsService {

    @Autowired
    private AliyunSmsProperties aliyunSmsProperties;

    @Autowired
    private IAcsClient acsClient;

    public void send(String phone, Map<String, String> templateParam) throws ClientException {
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain(aliyunSmsProperties.getDomain());
        request.setVersion(aliyunSmsProperties.getVersion());
        request.setAction(aliyunSmsProperties.getAction());

        // 设置手机号码和签名名称
        request.putQueryParameter("PhoneNumbers", phone);
        request.putQueryParameter("SignName", aliyunSmsProperties.getSignName());

        // 设置模板编号和模板参数
        request.putQueryParameter("TemplateCode", aliyunSmsProperties.getTemplateCode());
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(templateParam));

        CommonResponse response = acsClient.getCommonResponse(request);
        JSONObject jsonObject = JSONObject.parseObject(response.getData());
        if (!"OK".equals(jsonObject.getString("Code"))) {
            throw new RuntimeException("短信发送失败");
        }
    }
}

2. 集成邮件

2.1. 添加依赖

pom.xml 中添加邮件相关的依赖:

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

2.2. 配置参数

application.yml 文件中添加邮件相关的配置参数:

spring:
  mail:
    host: # SMTP 主机名或 IP 地址
    port: # SMTP 端口号
    username: # 邮箱账户
    password: # 邮箱密码
    protocol: smtp
    default-encoding: UTF-8
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true
      mail.smtp.ssl.protocols: TLSv1.2

2.3. 编写代码

@Service
public class EmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    public void send(String[] to, String subject, String text) {
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
            messageHelper.setFrom(javaMailSender.getUsername());
            messageHelper.setTo(to);
            messageHelper.setSubject(subject);
            messageHelper.setText(text, true);
            javaMailSender.send(mimeMessage);
        } catch (Exception e) {
            throw new RuntimeException("邮件发送失败", e);
        }
    }
}

以上就是 SpringBoot 集成短信和邮件的详细攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot 集成短信和邮件的配置示例详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 如何将mybatis配置到springmvc中

    如何将 MyBatis 配置到 Spring MVC 中 MyBatis 是一款非常流行的 ORM 框架,它可以帮助我们简化数据库操作。在 Spring MVC 中,我们可以将 MyBatis 配置到项目中,以便更方便地使用 MyBatis。本文将详细讲解如何将 MyBatis 配置到 Spring MVC 中,并提供两个示例说明。 配置 MyBatis 在…

    Java 2023年5月18日
    00
  • Java复制文件常用的三种方法

    当需要将一个文件复制到另一个地方时,Java中有许多方法可以复制文件。接下来我将讲解Java中复制文件的常用三种方法。 方法一: 使用Java IO的流来复制文件 最传统的方法是使用Java IO的流来复制文件。此方法使用基本的文件输入/输出流,将源文件作为输入流,将目标文件作为输出流进行复制。 public static boolean copyFileU…

    Java 2023年5月20日
    00
  • vue.js数据响应式原理解析

    Vue.js数据响应式原理解析 Vue.js是一个极易上手,功能强大的Javascript框架,它的核心就是数据响应式系统。在Vue.js中,我们可以轻松的绑定数据和视图,而这一切都得益于Vue.js的数据响应式系统。在本篇文章中,我们将深入剖析Vue.js数据响应式原理。 数据响应式系统란? Vue.js的数据响应式系统简单来说,就是一种将ViewMode…

    Java 2023年5月23日
    00
  • 基于Java中的数值和集合详解

    基于Java中的数值和集合详解 本文将介绍 Java 中的数值类型和集合类的基本知识,同时提供几个示例,帮助读者更好地理解这些概念。 数值类型 Java 中的基本数据类型包括整型(int 和 long)、浮点型(float 和 double)、字符型(char)和布尔型(boolean)。这些类型在计算机编程中非常常见,因此应当掌握。 整型 整型分为 int…

    Java 2023年5月26日
    00
  • jsp中Action使用session方法实例分析

    对于这个问题,我将介绍JSP中使用Action对象进行会话控制的方法,并附上两个实例。 什么是Action对象? Action是org.apache.struts.action.Action类的一个实例,是 Struts 框架中的一个关键组成部分。Action对象是用于处理HTTP请求的 Java 类,在 Struts 架构中起到中心作用。Action通过从…

    Java 2023年5月20日
    00
  • application作用域实现用户登录挤掉之前登录用户代码

    首先我们需要明确一下“application作用域”和“用户登录挤掉之前登录用户”的概念。 “application作用域”:指整个web应用程序都能够访问的作用域,存储的数据是全局共享的,任何用户访问该应用程序都可以访问这些数据。可以通过以下代码获取application作用域对象: ServletContext application = request…

    Java 2023年5月20日
    00
  • Java窗体动态加载磁盘文件的实现方法

    Java窗体动态加载磁盘文件是一种实现动态性的方法,常见于文件管理系统的开发中。下面给出相关的攻略和两个实例供参考。 准备工作 在实现 Java 窗体动态加载磁盘文件之前,需要进行以下准备工作: 在 Java 中使用 Swing 框架创建一个 JFrame 窗体,用于显示所加载的文件内容。 确认所加载的文件的存放位置,例如文件夹的路径为 “D:\test”,…

    Java 2023年5月20日
    00
  • JSP迅速入门

    以下是JSP迅速入门的完整攻略: JSP介绍 Java服务器页面(Java Server Pages,JSP)是一种动态网页技术,JSP和PHP、ASP相似,JSP由HTML、Java代码、JSP标签和表达式组成,它允许Java代码和命令直接插入HTML页面中。 JSP环境搭建 要使用JSP技术,需要一台运行Web应用程序的Web服务器,比如Tomcat、J…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部