Skip to content

Latest commit

 

History

History
92 lines (69 loc) · 2.74 KB

记录.md

File metadata and controls

92 lines (69 loc) · 2.74 KB

今天重温了一下发送短信验证码和邮箱信息的方法, 记录一下代码以供随时复习

短信验证码通过调用阿里的短信服务api。 邮箱通过springboot提供的邮箱服务来实现。

邮箱服务

我封装了一个邮箱的数据传输对象 ,里面有发件人,发往何处,邮件标题,邮件正文等字段。

使用的时候只需要注入SendMail类,调用其sendMail方法即可。邮箱服务的源码比较简单,通俗易懂。

示例代码:

@Autowired
SendMail sendMail;

@Test
public void test2() throws MessagingException {
    MailDTO mailDTO = new MailDTO();
    mailDTO.setFrom("2549936127@qq.com");
    mailDTO.setPersonal("mohang");
    mailDTO.setSubject("nihao");
    mailDTO.setContent("nihao");
    mailDTO.setTo("joneelmo@163.com");
    sendMail.sendMail(mailDTO);
}

短信服务

短信服务我封装了一个sms配置类,这个类会读取配置文件中的key。然后还有一个MessageDTO,这个里面主要是手机号和验证码两个字段。

使用的时候需要注入SMSConfig来获取配置文件的key, 以及SendMessage服务类 ,调用SendMessage对象的sendSms方法,传入SMSConfig和MessageDTO对象即可

示例代码:

@Autowired
SendMessage sender;

@Autowired
SMSConfig smsConfig;

@Test
public void messageTest() throws ClientException {
    MessageDTO msDTO = new MessageDTO();
    msDTO.setPhone("xxxxxx");
    msDTO.setCode("2023");
    //发短信
    SendSmsResponse response = sender.sendSms(smsConfig,msDTO);
    System.out.println("短信接口返回的数据----------------");
    System.out.println("Code=" + response.getCode());
    System.out.println("Message=" + response.getMessage());
    System.out.println("RequestId=" + response.getRequestId());
    System.out.println("BizId=" + response.getBizId());
}

依赖问题

短信服务依赖

<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>3.3.1</version>
    </dependency>

<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi -->
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
        <version>1.0.0</version>
    </dependency>

邮箱服务依赖

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