java 阿里云 发送短信功能实现

1. 注册短信平台(以阿里云为例)

        常用短信服务平台:阿里云、华为云、腾讯云、京东、梦网、乐信等

2. 注册成功后,开通短信服务

3. 设置短信签名、短信模板、AccessKey

        AccessKey 是访问阿里云 API 的密钥,具有账户的完全权限,我们要想在后面通过API调用阿里云短信服务的接口发送短信,那么就必须要设置AccessKey。

        控制台页面--->点击右上角头像--->选择"AccessKey管理"

4. 代码开发

可参考:官方文档

         4.1 导入Maven依赖

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.5.16</version>
</dependency>

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
    <version>2.1.0</version>
</dependency>

        4.2  导入官方提供的工具类

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;

/**
 * 短信发送工具类
 */
public class SMSUtils {
   /**
    * 发送短信
    * @param signName 签名
    * @param templateCode 模板
    * @param phoneNumbers 手机号
    * @param param 参数
    */
   public static void sendMessage(String signName, String templateCode,String phoneNumbers,String param){
      DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "xxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxx");
      IAcsClient client = new DefaultAcsClient(profile);

      SendSmsRequest request = new SendSmsRequest();
      request.setSysRegionId("cn-hangzhou");
      request.setPhoneNumbers(phoneNumbers);
      request.setSignName(signName);
      request.setTemplateCode(templateCode);
      request.setTemplateParam("{\"code\":\""+param+"\"}");
      try {
         SendSmsResponse response = client.getAcsResponse(request);
         System.out.println("短信发送成功");
      }catch (ClientException e) {
         e.printStackTrace();
      }
   }

}

        4.3 发送短信验证码业务

// 发送手机短信验证码
@PostMapping("/sendMsg")
public R<String> sendMsg(@RequestBody User user, HttpSession session){
    //获取手机号
    String phone = user.getPhone();
    if(StringUtils.isNotEmpty(phone)){
        //看个人需求自行编写,已生成随机的4位验证码为例
        String code = ValidateCodeUtils.generateValidateCode(4).toString();
        log.info("code={}",code);
			
        //调用阿里云提供的短信服务API完成发送短信
        //SMSUtils.sendMessage("10JQKA","",phone,code);
		
        //需要将生成的验证码保存到Session
        session.setAttribute(phone,code);
        return R.success("短信发送成功!!!");
    }
    return R.error("短信发送失败!!!");
}

        以上是以阿里云发送短信验证码为例,如有不足之处,还请大神留言补充,ღ( ´・ᴗ・` )比心。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要使用阿里云发送,你需要进行以下步骤: 1. 注册阿里云账号,并开通服务。 2. 创建模板,并审核通过。 3. 获取 AccessKeyId 和 AccessKeySecret。 4. 导入阿里云 SDK。 5. 编写发送Java 代码。 以下是一个简单的 Java 代码示例,可以用于发送: ```java import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; 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.v20160927.SendSmsRequest; import com.aliyuncs.sms.model.v20160927.SendSmsResponse; public class AliyunSms { public static void main(String[] args) { String accessKeyId = "your_accessKeyId"; String accessKeySecret = "your_accessKeySecret"; // 设置超时时间和 regionId IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Sms", "sms.aliyuncs.com"); // 构造请求 SendSmsRequest request = new SendSmsRequest(); request.setPhoneNumbers("手机号码"); request.setSignName("签名"); request.setTemplateCode("模板ID"); request.setTemplateParam("{\"code\":\"12345\"}"); // 发送请求 IAcsClient client = new DefaultAcsClient(profile); try { SendSmsResponse response = client.getAcsResponse(request); System.out.println("发送成功!"); } catch (ServerException e) { e.printStackTrace(); System.out.println("发送失败!"); } catch (ClientException e) { e.printStackTrace(); System.out.println("发送失败!"); } } } ``` 其中,需要将 `your_accessKeyId` 和 `your_accessKeySecret` 替换为你自己的 AccessKeyId 和 AccessKeySecret,同时将 `手机号码`、`签名` 和 `模板ID` 替换为你自己创建的模板相关息。`{\"code\":\"12345\"}` 是模板中需要替换的内容,可以根据实际情况进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10JQK炸

如果对您有所帮助,请给点鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值