Springboot集成阿里云短信实现短信发送功能
概要
Springboot集成阿里云短信实现短信发送功能
涉及:pom引用,相关功能类,短信模板配置,demo方法等
1,pom.xml
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
2,核心方法
2.1 实现类
主要涉及3个参数:①发送到哪个手机号;②短信模板是什么;③模板里的参数有啥
// 发送短信
private final SmsService smsService;
public R testMsg(){
Map<String, String> params = new HashMap<>();
params.put("param1","参数1");
params.put("param2","参数2");
params.put("param3","参数3");
...
// 手机号,短信模板(阿里云审核成功后给的编码),模板参数
smsService.sendMsg("157****", MessageTemplate.SMS_1234567, params);
}
2.2 发送短信Service类
@Slf4j
@Component
public class SmsService {
@Autowired
private AliDayuSendMessage aliDayuSendMessage;
/**
*
* @param mobile 发送到哪个手机号
* @param temp 短信模板
* @param param 模板里的动态参数
* @return
*/
public boolean sendMsg(String mobile, MessageTemplate temp, Map<String, String> param) {
MessageResult sendMessage = aliDayuSendMessage.sendMessage(mobile, temp, param);
log.info("短信发送返回信息:{}", JSON.toJSON(sendMessage));
return sendMessage.isSuccess();
}
}
2.3 短信模板枚举类
public enum MessageTemplate {
//
SMS_1234567("这是测试短信模板,参数1${param1},参数2${param2},参数3${param3}");
public String desc;
MessageTemplate(String desc) {
this.desc = desc;
}
}
2.4 AliDayuSendMessage(核心类)
涉及的几个参数需要联系自己公司的运维工程师要,主要有accessKeyId,accessKeySecret,productName(这个联系产品或者业务定义)
import com.alibaba.fastjson.JSON;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import org.muyuan.core.log.logger.MuyuanLogger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import