今天重温了一下发送短信验证码和邮箱信息的方法, 记录一下代码以供随时复习
短信验证码通过调用阿里的短信服务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>