阿里云短信

开通sms权限

  1. 登陆阿里云,点击头像,再点击头像,进入Accesskey管理,选择开始使用子账户Accesskey

  2. 创建用户组,分配sms短息权限

  3. 创建用户,访问方式:api调用访问勾上,分配到用户组,就具有了用户组的权限

  4. 得到了AccessKey ID和AccessKey Secret,很重要,保存好

开通阿里短信服务

  1. 搜索短信服务,进入到控制台
  2. 国内消息,添加签名和模板,都需要审核

代码

依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>tea-openapi</artifactId>
        <version>0.1.3</version>
    </dependency>

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>dysmsapi20170525</artifactId>
        <version>2.0.6</version>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.78</version>
    </dependency>
</dependencies>
Client 客户端
@Configuration
public class SmsConfig {
    @Bean
    public static Client createClient() throws Exception {
        Config config = new Config()
                // 您的AccessKey ID
                .setAccessKeyId("*****")
                // 您的AccessKey Secret
                .setAccessKeySecret("******")
                // 访问的域名
                .setEndpoint("dysmsapi.aliyuncs.com");
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }
}
Service
@Service
public class SendSmsServiceImpl implements SendSmsService {

    @Autowired
    private Client client;

    @Override
    public boolean sendSms(String phone, String msg) {
        try {
            SendSmsRequest request = new SendSmsRequest();
            // 复制代码运行请自行打印 API 的返回值
            request.setPhoneNumbers(phone);//接收信息的手机号
            request.setSignName("七星博士");//签名,阿里云固定好的
            Map<String, Object> map = new HashMap<>();
            map.put("code", msg);//要发送的信息,msg会替代我们设备的模板中的code
            request.setTemplateParam(JSONObject.toJSONString(map));
            request.setTemplateCode("SMS_109675591");//模板code,阿里云固定好的
            client.sendSms(request);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
}
Controller
@RestController
@CrossOrigin
public class SendSmsController {

    @Autowired
    private SendSmsService sendSmsService;

    @RequestMapping("send/{phone}/{msg}")
    public void test1(@PathVariable("phone") String phone, @PathVariable("msg") String msg) {
        sendSmsService.sendSms(phone, msg);
    }
}
posted @   jpy  阅读(22)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示