springboot 发送短信功能
时间: 2023-10-13 21:00:59 浏览: 95
springboot整合阿里云发送短信demo
在 Spring Boot 中发送短信可以使用短信服务商提供的 SDK 或 API 接口,这里以阿里云为例介绍。
1. 引入阿里云短信服务 SDK
在 Maven 中添加以下依赖:
```xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.3.8</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.0.0</version>
</dependency>
```
2. 配置阿里云短信服务相关参数
在`application.properties`中添加以下配置:
```properties
# 阿里云短信服务
aliyun.sms.access-key-id=your_access_key_id
aliyun.sms.access-key-secret=your_access_key_secret
aliyun.sms.sign-name=your_sign_name
aliyun.sms.template-code=your_template_code
```
需要替换`your_access_key_id`、`your_access_key_secret`、`your_sign_name`和`your_template_code`为自己的阿里云短信服务相关信息。
3. 编写发送短信的方法
```java
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.aliyuncs.sms.model.v20170525.SendSmsRequest;
import com.aliyuncs.sms.model.v20170525.SendSmsResponse;
@Service
public class SmsService {
@Value("${aliyun.sms.access-key-id}")
private String accessKeyId;
@Value("${aliyun.sms.access-key-secret}")
private String accessKeySecret;
@Value("${aliyun.sms.sign-name}")
private String signName;
@Value("${aliyun.sms.template-code}")
private String templateCode;
public boolean sendSms(String phoneNumber, String code) {
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phoneNumber);
request.setSignName(signName);
request.setTemplateCode(templateCode);
request.setTemplateParam("{\"code\":\"" + code + "\"}");
try {
SendSmsResponse response = client.getAcsResponse(request);
return "OK".equals(response.getCode());
} catch (ServerException e) {
e.printStackTrace();
return false;
} catch (ClientException e) {
e.printStackTrace();
return false;
}
}
}
```
需要注入`accessKeyId`、`accessKeySecret`、`signName`和`templateCode`等配置,然后调用阿里云短信服务 SDK 提供的方法发送短信。
阅读全文