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日

相关文章

  • Spring Cloud下OAUTH2注销的实现示例

    让我来详细讲解一下“Spring Cloud下OAUTH2注销的实现示例”的完整攻略。本文将介绍两种实现OAuth2注销的方法。 方法一:使用Spring Security OAuth2自带的注销功能 在使用Spring Security OAuth2时,我们可以使用其自带的注销功能来实现OAuth2注销。具体方法如下: 1.添加注销请求路径 在Spring…

    Java 2023年5月20日
    00
  • SpringMVC项目访问controller时候报404的解决

    当我们在SpringMVC项目中访问controller时,有时候会遇到404错误,这可能是由于多种原因引起的。本文将提供一些解决404错误的方法,并提供两个示例来说明这些方法的使用。 方法一:检查请求路径 当我们访问controller时,首先要检查请求路径是否正确。如果请求路径不正确,服务器将无法找到相应的controller,从而返回404错误。以下是…

    Java 2023年5月17日
    00
  • 详解使用Jenkins部署Spring Boot项目

    我们来详细讲解下如何使用Jenkins部署Spring Boot项目吧。 1. 准备工作 首先,我们需要安装好Jenkins和Java环境,并确保Jenkins服务启动正常。 然后,我们需要在Jenkins中安装相关的插件,如Git插件、Maven插件、Deploy to Container插件等。这些插件可以协助我们实现自动化部署。 最后,我们需要准备好我…

    Java 2023年5月20日
    00
  • 布隆过滤器(Bloom Filter)的Java实现方法

    布隆过滤器(Bloom Filter)的Java实现方法 什么是布隆过滤器? 布隆过滤器(Bloom Filter)是一种数据结构,它可以用来判断一个元素是否可能存在于一个集合中,但并不能确定该元素是否一定存在于该集合中。因为该数据结构的判断结果在误判率(False Positive Rate)上具有一定的不确定性。布隆过滤器可以在空间和时间上做到非常高效,…

    Java 2023年5月26日
    00
  • Java语言简介(动力节点Java学院整理)

    下面我将详细讲解“Java语言简介(动力节点Java学院整理)”的攻略。 一、Java语言简介 Java 是由 sun 公司在 1991 年 5 月开发的一套跨平台的编程语言。Java 被设计成一种具有极高可移植性的编程语言,旨在使开发人员可以在不同的平台上编写代码,只要在目标平台上安装 JVM,就可以在不同操作系统上运行 Java 代码。 Java 语言是…

    Java 2023年5月23日
    00
  • Java 实战项目之小说在线阅读系统的实现流程

    首先让我们来讲解一下“Java 实战项目之小说在线阅读系统的实现流程”。 1. 系统功能需求分析 在开发小说在线阅读系统之前,我们需要对系统的功能需求进行分析,以确保开发出的系统能够满足用户的要求。在这个阶段,我们需要做以下工作: 确定系统的用户类型:读者、作者和管理员等。 确定系统的基本功能模块:用户注册、登录、小说分类、小说搜索、在线阅读、小说管理、用户…

    Java 2023年5月24日
    00
  • Java命名规则详细总结

    Java命名规则详细总结 Java是一门强类型语言,命名规则是Java语言编写中一个非常重要的方面。正确的命名规则可以使代码更易于理解和维护。本文将详细总结Java命名规则,包括标识符的命名规则和Java类库的命名规则。 标识符的命名规则 在Java编程中,标识符是变量、常量、方法、类等的名称,合法的标识符应该遵循以下规则: 标识符只能由字母、数字和下划线(…

    Java 2023年5月26日
    00
  • Java 批量文件压缩导出并下载到本地示例代码

    要实现 Java 批量文件压缩导出并下载到本地,需要完成以下步骤: 构建压缩文件流 将文件流写入输出流 设置 HTTP 响应头信息 导出压缩文件 可以使用 java.util.zip 包中的 ZipOutputStream 对文件进行压缩。 以下是一个示例代码,实现将多个文件打成一个压缩包,压缩包文件名为 example.zip ,然后将压缩包导出并下载到本…

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