批量发送短信

阿里云短信文档如下:短信批量发送API(SendBatchSms)


文章目录

  • 批量发送短信
  • 步骤 1 创建阿里云账号 步骤 2 获取阿里云访问密钥
  • spring boot 项目引入阿里云短信依赖
  • 我们这里使用引入依赖
    • 1.引入库
    • 写一个工具类
  • spring boot 请求

步骤 1 创建阿里云账号 步骤 2 获取阿里云访问密钥

假设前2步你已经完成。步骤 3 在控制台完成模板与签名的申请,获得调用接口必备的参数


短信签名和短信模板你已经设置好

spring boot 项目引入阿里云短信依赖

或者自己下载SDK工具包

我们这里使用引入依赖

1.引入库

代码如下(示例):

<dependency><!-- 阿里云短信 --><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency><dependency><!-- 阿里云短信 --><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency>

写一个工具类

SmsUtil工具类代码如下(示例):

//设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的几个参数
final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
//替换成你的AK
final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2
final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤2
//初始化ascClient,暂时不支持多region(请勿修改)
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);

封装好等下步使用。


spring boot 请求

提示:以下代码仅供思路参考,完全复制粘贴可能会报错。

package com.wuliu.fa.Controller;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.github.pagehelper.Page;
import com.wuliu.fa.entity.company;
import com.wuliu.fa.service.CompanyService;
import com.wuliu.fa.util.ResponseResult;@RestController
public class manymessagsController extends BaseController{private Logger log = LoggerFactory.getLogger(this.getClass());@Autowiredprivate CompanyService companyservice;//预约发货短信@PostMapping( "/ssssmsXxs")@ResponseBodypublic ResponseResult<Map<String,String>> ssssmsXxs(String phone) throws Exception {Map<String,String> m=new HashMap<String,String>();int maxNums=100; //每次最多发送100条,我们一次批量发100条 int times =0;// 循环几个100  用List的长度 除 100int size=0; // //查询结果列表Page<company> companylist=companyservice.GetBycname("", 0, 101);size=companylist.size();if(size<100) {times=1;}else{times=(size-1)/maxNums +1; //为什么要-1 因为如果是200的时候,理论上次数应该是2,而不是3,如果是101,那么次数也是2,这样就保证次数准确。}List<String> phoneList= new ArrayList<>();List<String> templateList =new ArrayList<>();List<String > signNameList=new ArrayList<>();StringBuffer phoneNumberJson;StringBuffer templateParamJson;StringBuffer signNameJson;for(int j=0;j<times;j++){if(j>0&&(j*maxNums +1 >size)){ //边界判定,如果刚好是100条,那么times的值为2,这时候j 为1的时候 101 大于100结束循环,100条以内不生效break;}else{phoneNumberJson =new StringBuffer();templateParamJson =new StringBuffer();signNameJson= new StringBuffer();phoneNumberJson.append("[");templateParamJson.append("[");signNameJson.append("[");for(int k=j*maxNums;k<size && k<(j+1)*maxNums;k++){phoneNumberJson.append("\""+companylist.get(k).getTel()+"\",");signNameJson.append("\"你的签名\",");templateParamJson.append("{"+"\"name\":\""+companylist.get(k).getName()+"\","+"},");phoneNumberJson.deleteCharAt(phoneNumberJson.length()-1);//移除最后一个逗号字符,templateParamJson.deleteCharAt(templateParamJson.length()-1);//移除最后一个逗号字符signNameJson.deleteCharAt(signNameJson.length()-1);phoneNumberJson.append("]");templateParamJson.append("]");signNameJson.append("]");}phoneList.add(phoneNumberJson.toString());templateList.add(templateParamJson.toString());signNameList.add(signNameJson.toString());}}//组装请求对象if(size>0&&times==phoneList.size()){for(int i=0;i<times;i++){//       SendBatchSmsRequest request = new SendBatchSmsRequest();//     request.setMethod(MethodType.POST);//       request.setPhoneNumberJson(phoneList.get(i));//     request.setSignNameJson(singNameList.get(i));//     request.setTemplateParamJson(templateList.get(i));//        request.setTEmplateCode(AliSmsCode);//      SendBatchSmsResponse sendSmsREsponse= acsClient.getAcsRAcsREsponse(request);//     if(sendSmsREsponse.getCode()!=null && sendSmsREsponse.getCode().equalse("OK")){//        //批量请求发送短信成功//      System.out.println("批量短信发送成功:"+phoneList.size()+"条");//        }else{//        System.out.println("批量短信发送失败!");//     }}Thread.sleep(100) ;//批量发送暂停100ms;m.put("msg", "发送成功");return new ResponseResult<Map<String,String>>(SUCCESS,m);}else{m.put("msg", "发送失败");return new ResponseResult<Map<String,String>>(SUCCESS,m);}}
}

Springboot 使用阿里云api批量发送短信相关推荐

  1. 阿里云API定时发送短信(小记)

    定时任务的代码:import com.google.gson.Gson; import com.jianke.bid.common.SMSUtils; import org.springframewo ...

  2. 阿里云接口实现发送短信验证码

    java 阿里云接口实现发送短信验证码 1. 阿里云后台配置短信相关 1.1 开通短信服务 1.2 添加模板签名 1.3 创建秘钥 1.4 短信需要后台授权--注意点 2 java--简单实现短信验证 ...

  3. 使用阿里云短信通知服务发送短信--工具类

    public class AliyunUtils {public static boolean sendSMS(String mobilephone,Integer status) throws Se ...

  4. 基于MFC与阿里云制作简易发送短信

    ***~~ 做到最后可能会只是不能识别汉字,但是能识别英文和数字,有待改进的地方` ` ~~ *** # 详细步骤见如下 一. 新建一个MFC项目:打开VS2013,文件->新建->项目 ...

  5. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)

    一.开通阿里云短信服务 开通步骤如下图所示 开通完成后,进入阿里云短信验证首页,点击国内消息 一般来说,在短信验证时需要签名管理和模板管理,但是签名管理需要备案或者上线服务,所以对于没有备案和上线应用 ...

  6. java 阿里云接口实现发送短信验证码

    1.先去阿里云开通短信服务: 2.添加模板及签名:需要审核,个人账户审核就几分钟就OK 先解释一下模板及签名: 标准参照:https://help.aliyun.com/document_detail ...

  7. Yii2 + 阿里云 后台配置发送短信

    1.登录阿里云账号之后 首先鼠标移动到你的头像上 点击AccessKey之后 创建 2.找到短信服务这里 申请签名 和 模板 3.登录yii2框架后台 填写上相对应的信息. 4.在控制器中: publ ...

  8. springMVC+阿里云API = 实现发送手机验证码短信

    springMVC+阿里云API = 实现发送手机验证码短信 前段时间vue框架做了一个旅游APP软件,其中在用户登录APP的时候,我不仅提供了用户可以自己手动先去注册账号在进行登陆App.然后我还提 ...

  9. JAVA 实现阿里云短信申请模板以及批量发送短信

    添加pom.xml依赖 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java ...

  10. 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)...

    微信时代的今天,短信一样不可缺席,大系统都有集成短信接口. 若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说 ...

最新文章

  1. 使用Pyecharts制作Bar3D用法详解
  2. AI工程师面试知识点:神经网络相关
  3. BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
  4. Linux网络安装(PXE + DHCP+TFTP+ Kickstart+ FTP)
  5. java中array,arrayList,iterator;
  6. Smarty2至Smarty3升级指南
  7. shell替换程序里的代码
  8. 网络通信误码率测试软件,微机在通信线路误码率测试中的应用
  9. javascript控制开始日期,和结束日期在同一个月
  10. 公差带与配合 常用基轴制公差带的相互关系
  11. 相机存储卡不小心格式化怎么恢复呢?
  12. apkanalyzer.bat could NOT be found in D:\Program Files\android-sdk的解决方案
  13. LeetCode--第25题K个一组翻转链表
  14. Java腐烂的橘子leetcode
  15. ImageMagick将多张图片拼接成一张图片_word转存技巧:如何将每页文档转换为图片保存?...
  16. IntelliJ IDEA商业版 -- 破解
  17. 怎样在普通java项目中使用aspectj
  18. 怎么批量转换图片格式?这些方法帮助你一键转换
  19. 【Arduino】mega2560 驱动grove 三色水墨屏
  20. 数组索引必须为正整数或逻辑值。

热门文章

  1. mysql stmt语法_mysqli_stmt_fetch
  2. 【基于51】红外寻迹智能小车-硬件篇
  3. Word页面中底端如何画一条横线,再下端写文字?
  4. PS常用快捷键(持续更新)
  5. python三角网格代码_三角剖分算法(delaunay)
  6. 文章重复率很高,4个快速修改的小技巧,赶快用起来
  7. SCI论文重复率与降重
  8. 程序员也要学英语——限定词、形容词和副词
  9. office 2010 word文档,插入复选框,方框打勾(打对号)的方法
  10. Allegro添加相对传输延迟的等长规则设置