发送短信工具类(亿美短信平台接口)



一般我们都是需要接入第三方短信平台,我这边是接入亿美的短信平台sdk,在我们的项目中只需要导入emayclient.jar就可以使用发送接口,当然前提是你有账户和密码,就涉及到购买了。不过其他不多讲,我这边只传达怎么调用,以及分享一下调用的工具类。
SmsUtil的代码如下:

1.package com.yiyong.mavenspring.demo.util;
2.
3.import org.slf4j.Logger;
4.import org.slf4j.LoggerFactory;
5.
6.import cn.emay.sdk.client.api.Client;
7.
8./**
9. * @author yiyong wu
10. * @date 2016年1月11日 下午1:54:30
11. */
12.public class SendSmsUtil {
13.
14. protected static Logger log = LoggerFactory.getLogger(SendSmsUtil.class);
15.
16. private static String smsSerial = "你的账户";
17.
18. private static String smsKey = "你对应的密码";
19.
20. private static Boolean smsAllow = true;
21.
22. private static Client client;
23.
24. static {
25. try {
26. client = new Client(smsSerial, smsKey);
27. } catch (Exception e) {
28. e.printStackTrace();
29. }
30. }
31.
32. /**
33. * 发送短信
34. *
35. * @param mobiles
36. * 手机号码数组
37. * @param content
38. * 短信内容
39. * @return
40. */
41. public static int sendSMS(String[] mobiles, String content) {
42.
43. // 允许发送配置为true时,才能够发出短信
44. if (!smsAllow) {
45. return 403;
46. }
47. int res = 404;
48. try {
49. res = client.sendSMS(mobiles, content, 3);
50. System.out.println("==================" + res);
51. log.info("Send SMS: mobiles = " + mobiles + ", content = "
52. + content + ", res = " + res);
53. return res;
54. } catch (Exception e) {
55. log.error("send sms failed: mobiles = " + mobiles + ", content = "
56. + content + "res = " + res);
57. return 404;
58. }
59. }  

62.
63. public static void main(String[] args) {
64. String[] s = { "***********" };
65. System.out.println("sdfsd 回复TD退订");//有时候一些服务会必须要求添加回复td退订
66. System.out.println(SendSmsUtil.sendSMS(s, "你要发送的内容"));//一般发送成功会返回0
67. }
68.
69.}


package com.yiyong.mavenspring.demo.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.emay.sdk.client.api.Client;

/**
* @author yiyong wu
* @date 2016年1月11日 下午1:54:30
*/
public class SendSmsUtil {
protected static Logger log = LoggerFactory.getLogger(SendSmsUtil.class);
private static String smsSerial = "你的账户";
private static String smsKey = "你对应的密码";
private static Boolean smsAllow = true;
private static Client client;

static {
try {
client = new Client(smsSerial, smsKey);
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 发送短信
*
* @param mobiles
* 手机号码数组
* @param content
* 短信内容
* @return
*/
public static int sendSMS(String[] mobiles, String content) {

// 允许发送配置为true时,才能够发出短信
if (!smsAllow) {
return 403;
}
int res = 404;
try {
res = client.sendSMS(mobiles, content, 3);
System.out.println("==================" + res);
log.info("Send SMS: mobiles = " + mobiles + ", content = "
+ content + ", res = " + res);
return res;
} catch (Exception e) {
log.error("send sms failed: mobiles = " + mobiles + ", content = "
+ content + "res = " + res);
return 404;
}
}

 public static void main(String[] args) {
String[] s = { "***********" };
System.out.println("sdfsd 回复TD退订");//有时候一些服务会必须要求添加回复td退订
System.out.println(SendSmsUtil.sendSMS(s, "你要发送的内容"));//一般发送成功会返回0
}
}

在你的控制层中调用一般会这样掉用,这边我只分析一个路径访问的方法,不具体分享整个类(因为这边我是用ajax访问执行,需要在前端确认总共发送了多少条,而且我的号码也是根据我那个CVS文件读取工具读取的,也可以是txt文件读取,所以要是看不懂我这边的调用,可以看一下前面那个excel文件读取工具类)

1./**
2. * add by yiyong wu 201601114(后端短信发送)
3. * @param request
4. * @param response
5. * @return
6. */
7. @ResponseBody
8. @RequestMapping(value="sendmessage/send",method = RequestMethod.POST)
9. public Map<String,String> sendMessages(HttpServletRequest request,HttpServletResponse response){
10. Map<String,String> map = new HashMap<String,String>();
11. String messageContent = request.getParameter("messageContent");
12. String[] phoneNums = UploadPhoneNumUtil.uploadPhoneNum(request);
13.
14. List<String> list =new ArrayList(Arrays.asList(phoneNums));
15.
16. int size = list.size();
17. List<String> small = Lists.newArrayList();
18. int flag = 0;
19. log.info("需要发送" + size + "条短信------开始发送!");
20. for (int i = 0; i < size; i++) {
21. small.add(list.get(i));
22. if (small.size() == 200) {
23. String[] sp = (String[]) small
24. .toArray(new String[small.size()]);
25. log.info("此次一共要发送" + small.size() + "条短信!");
26. log.info("此次发送手机号码为:" + small);
27. SendSmsUtil.sendSMS(sp, messageContent);
28. try {
29. Thread.sleep(1000);
30. } catch (InterruptedException e) {
31. log.error("睡眠失败!", e);
32. }
33. small.clear();
34. }
35. flag = small.size();
36. }
37. if (flag != 200) {
38. String[] sq = (String[]) small.toArray(new String[small.size()]);
39. log.info("此次一共要发送" + small.size() + "条短信!");
40. log.info("此次发送手机号码为:" + small);
41.
42. SendSmsUtil.sendSMS(sq, messageContent);
43. }
44. log.info("需要发送" + size + "条短信------发送完毕!");
45.
46. map.put("sended", "success");
47. map.put("sendNum", phoneNums.length+"");
48. return map;
49. } 

/**
* add by yiyong wu 201601114(后端短信发送)
* @param request
* @param response
* @return
*/
@ResponseBody
@RequestMapping(value="sendmessage/send",method = RequestMethod.POST)
public Map<String,String> sendMessages(HttpServletRequest request,HttpServletResponse response){
Map<String,String> map = new HashMap<String,String>();
String messageContent = request.getParameter("messageContent");
String[] phoneNums = UploadPhoneNumUtil.uploadPhoneNum(request);

List<String> list =new ArrayList(Arrays.asList(phoneNums));

int size = list.size();
List<String> small = Lists.newArrayList();
int flag = 0;
log.info("需要发送" + size + "条短信------开始发送!");
for (int i = 0; i < size; i++) {
small.add(list.get(i));
if (small.size() == 200) {
String[] sp = (String[]) small
.toArray(new String[small.size()]);
log.info("此次一共要发送" + small.size() + "条短信!");
log.info("此次发送手机号码为:" + small);
SendSmsUtil.sendSMS(sp, messageContent);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
log.error("睡眠失败!", e);
}
small.clear();
}
flag = small.size();
}
if (flag != 200) {
String[] sq = (String[]) small.toArray(new String[small.size()]);
log.info("此次一共要发送" + small.size() + "条短信!");
log.info("此次发送手机号码为:" + small);

SendSmsUtil.sendSMS(sq, messageContent);
}
log.info("需要发送" + size + "条短信------发送完毕!");

map.put("sended", "success");
map.put("sendNum", phoneNums.length+"");
return map;
}

一般我们都是需要接入第三方短信平台,我这边是接入亿美的短信平台sdk,在我们的项目中只需要导入emayclient.jar就可以使用发送接口,当然前提是你有账户和密码,就涉及到购买了。不过其他不多讲,我这边只传达怎么调用,以及分享一下调用的工具类。

SmsUtil的代码如下:

  1. package com.yiyong.mavenspring.demo.util;  
  2.   
  3. import org.slf4j.Logger;  
  4. import org.slf4j.LoggerFactory;  
  5.   
  6. import cn.emay.sdk.client.api.Client;  
  7.   
  8. /** 
  9.  * @author yiyong wu 
  10.  * @date 2016年1月11日 下午1:54:30 
  11.  */  
  12. public class SendSmsUtil {  
  13.   
  14.     protected static Logger log = LoggerFactory.getLogger(SendSmsUtil.class);  
  15.   
  16.     private static String smsSerial = "你的账户";  
  17.   
  18.     private static String smsKey = "你对应的密码";  
  19.   
  20.     private static Boolean smsAllow = true;  
  21.   
  22.     private static Client client;  
  23.   
  24.     static {  
  25.         try {  
  26.             client = new Client(smsSerial, smsKey);  
  27.         } catch (Exception e) {  
  28.             e.printStackTrace();  
  29.         }  
  30.     }  
  31.   
  32.     /** 
  33.      * 发送短信 
  34.      *  
  35.      * @param mobiles 
  36.      *            手机号码数组 
  37.      * @param content 
  38.      *            短信内容 
  39.      * @return 
  40.      */  
  41.     public static int sendSMS(String[] mobiles, String content) {  
  42.   
  43.         // 允许发送配置为true时,才能够发出短信  
  44.         if (!smsAllow) {  
  45.             return 403;  
  46.         }  
  47.         int res = 404;  
  48.         try {  
  49.             res = client.sendSMS(mobiles, content, 3);  
  50.             System.out.println("==================" + res);  
  51.             log.info("Send SMS: mobiles = " + mobiles + ", content = "  
  52.                     + content + ", res = " + res);  
  53.             return res;  
  54.         } catch (Exception e) {  
  55.             log.error("send sms failed: mobiles = " + mobiles + ", content = "  
  56.                     + content + "res = " + res);  
  57.             return 404;  
  58.         }  
  59.     }  
  1.     public static void main(String[] args) {  
  2.         String[] s = { "***********" };  
  3.         System.out.println("sdfsd 回复TD退订");//有时候一些服务会必须要求添加回复td退订  
  4.         System.out.println(SendSmsUtil.sendSMS(s, "你要发送的内容"));//一般发送成功会返回0  
  5.     }  
  6.   
package com.yiyong.mavenspring.demo.util;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import cn.emay.sdk.client.api.Client;/*** @author yiyong wu* @date 2016年1月11日 下午1:54:30*/
public class SendSmsUtil {protected static Logger log = LoggerFactory.getLogger(SendSmsUtil.class);private static String smsSerial = "你的账户";private static String smsKey = "你对应的密码";private static Boolean smsAllow = true;private static Client client;static {try {client = new Client(smsSerial, smsKey);} catch (Exception e) {e.printStackTrace();}}/*** 发送短信* * @param mobiles*            手机号码数组* @param content*            短信内容* @return*/public static int sendSMS(String[] mobiles, String content) {// 允许发送配置为true时,才能够发出短信if (!smsAllow) {return 403;}int res = 404;try {res = client.sendSMS(mobiles, content, 3);System.out.println("==================" + res);log.info("Send SMS: mobiles = " + mobiles + ", content = "+ content + ", res = " + res);return res;} catch (Exception e) {log.error("send sms failed: mobiles = " + mobiles + ", content = "+ content + "res = " + res);return 404;}}public static void main(String[] args) {String[] s = { "***********" };System.out.println("sdfsd 回复TD退订");//有时候一些服务会必须要求添加回复td退订System.out.println(SendSmsUtil.sendSMS(s, "你要发送的内容"));//一般发送成功会返回0}}


在你的控制层中调用一般会这样掉用,这边我只分析一个路径访问的方法,不具体分享整个类(因为这边我是用ajax访问执行,需要在前端确认总共发送了多少条,而且我的号码也是根据我那个CVS文件读取工具读取的,也可以是txt文件读取,所以要是看不懂我这边的调用,可以看一下前面那个excel文件读取工具类)
  1. /** 
  2.      * add by yiyong wu 201601114(后端短信发送) 
  3.      * @param request 
  4.      * @param response 
  5.      * @return 
  6.      */  
  7.     @ResponseBody  
  8.     @RequestMapping(value="sendmessage/send",method = RequestMethod.POST)  
  9.     public Map<String,String> sendMessages(HttpServletRequest request,HttpServletResponse response){  
  10.         Map<String,String> map = new HashMap<String,String>();  
  11.         String messageContent = request.getParameter("messageContent");  
  12.         String[] phoneNums = UploadPhoneNumUtil.uploadPhoneNum(request);  
  13.   
  14.         List<String> list =new ArrayList(Arrays.asList(phoneNums));  
  15.           
  16.         int size = list.size();  
  17.         List<String> small = Lists.newArrayList();  
  18.         int flag = 0;  
  19.         log.info("需要发送" + size + "条短信------开始发送!");  
  20.         for (int i = 0; i < size; i++) {  
  21.             small.add(list.get(i));  
  22.             if (small.size() == 200) {  
  23.                 String[] sp = (String[]) small  
  24.                         .toArray(new String[small.size()]);  
  25.                 log.info("此次一共要发送" + small.size() + "条短信!");  
  26.                 log.info("此次发送手机号码为:" + small);  
  27.                 SendSmsUtil.sendSMS(sp, messageContent);  
  28.                 try {  
  29.                     Thread.sleep(1000);  
  30.                 } catch (InterruptedException e) {  
  31.                     log.error("睡眠失败!", e);  
  32.                 }  
  33.                 small.clear();  
  34.             }  
  35.             flag = small.size();  
  36.         }  
  37.         if (flag != 200) {  
  38.             String[] sq = (String[]) small.toArray(new String[small.size()]);  
  39.             log.info("此次一共要发送" + small.size() + "条短信!");  
  40.             log.info("此次发送手机号码为:" + small);  
  41.               
  42.             SendSmsUtil.sendSMS(sq, messageContent);  
  43.         }  
  44.         log.info("需要发送" + size + "条短信------发送完毕!");  
  45.   
  46.         map.put("sended""success");  
  47.         map.put("sendNum", phoneNums.length+"");      
  48.         return map;   
  49.     }  
  50.       
/*** add by yiyong wu 201601114(后端短信发送)* @param request* @param response* @return*/@ResponseBody@RequestMapping(value="sendmessage/send",method = RequestMethod.POST)public Map<String,String> sendMessages(HttpServletRequest request,HttpServletResponse response){Map<String,String> map = new HashMap<String,String>();String messageContent = request.getParameter("messageContent");String[] phoneNums = UploadPhoneNumUtil.uploadPhoneNum(request);List<String> list =new ArrayList(Arrays.asList(phoneNums));int size = list.size();List<String> small = Lists.newArrayList();int flag = 0;log.info("需要发送" + size + "条短信------开始发送!");for (int i = 0; i < size; i++) {small.add(list.get(i));if (small.size() == 200) {String[] sp = (String[]) small.toArray(new String[small.size()]);log.info("此次一共要发送" + small.size() + "条短信!");log.info("此次发送手机号码为:" + small);SendSmsUtil.sendSMS(sp, messageContent);try {Thread.sleep(1000);} catch (InterruptedException e) {log.error("睡眠失败!", e);}small.clear();}flag = small.size();}if (flag != 200) {String[] sq = (String[]) small.toArray(new String[small.size()]);log.info("此次一共要发送" + small.size() + "条短信!");log.info("此次发送手机号码为:" + small);SendSmsUtil.sendSMS(sq, messageContent);}log.info("需要发送" + size + "条短信------发送完毕!");map.put("sended", "success");map.put("sendNum", phoneNums.length+"");	return map;	}


    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32108.html

    如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    国际web短信软件平台开发搭建后台功能|移讯云短信系统

    国际web短信软件平台开发搭建后台功能|移讯云短信系统 特色功能模块功能列表 1&#xff1a;通道路由模块 1.1&#xff1a;通道地区设置 1.2&#xff1a;通道关键词分流 1.3&#xff1a;白名单独立通道设置 1.4&#xff1a;通道分组设置 1.5&#xff1a;通道分组分配 1.6…

    调用Android短信软件进行短信群发

    最近想做一个可以群发短信的功能&#xff0c;但又不想自己做一个发短信的界面&#xff0c;之前也做过利用Intent调用系统发短信功能&#xff0c;这个网上也有大把人发过。 String mobile "18900000000" Intent intent new Intent(Intent.ACTION_VIE…

    短信接口平台

    最近忙着弄短信接口的平台程序&#xff0c;现在已经基本做完&#xff0c;跑起来看着还挺顺的。我简单介绍一下。 详细说明 中国电信和中国移动的短信协议要求客户端主动连接到网关收取信息&#xff0c;并且接受的连接只能有一个。因此客户端的接收程序必须尽快处理收到的信息…

    什么是短信平台api接口?

    自从人类诞生了手机&#xff0c;短信便随之而来&#xff0c;虽然后来有了更多的即时通信工具&#xff0c;如QQ和微信&#xff0c;个人用短信的机会已经很少了&#xff0c;但是对于企业公司来说&#xff0c;短信一直是非常方便的信息传递工具。 那些带有营销性质的企业和商家会通…

    营销短信API,免费接口

    接口地址: https://api.kertennet.com/live/sms 返回格式: json 请求方式: GET 请求示例: https://api.kertennet.com/live/sms?text短信代发&sign可腾代发&phoneNum1782016XXXX 请求参数说明&#xff1a; 返回数据&#xff1a;

    关于origin简单作图

    1.首先将要分析的数据放入表格中。 2.其次打开origin作图软件&#xff0c;点击File----import—Excal 导入表格 3.点击箭头所指图标 4.双击图中的数据黑点既可以调剂点的形状和数据 5.x,y轴的调节同上。

    R语言中作图的一些基本代码

    文章目录 利用par()函数设置公共绘图参数&#xff08;重点&#xff09;在已有的plot图像中如何添加线条做出三维表面图控制坐标轴显示的区域在指定坐标中做注释标题和xy的标签标题中的字体通过title()对图形的坐标轴名称和图形标题进行编辑(重点)是否显示坐标轴是否显示坐标刻度…

    Excel作图时,将一列设置为横坐标

    原始需求 原始数据如下 直接选择两列数据作图会变成这个样子&#xff08;不是想要的效果&#xff09; 正确做法 1、先选择纵坐标数据 2、插入折线图 3、右键横坐标选择数据 4、点击笔的按钮 5、点此按钮&#xff0c;选择相应数据&#xff0c;回车 6、就达到想要的效果了 7、添…

    matlab米氏方程作图,双倒数作图法米氏方程

    米氏方程与双倒数作图法(Lineweaver-Burk plot) 米氏方程(Michaelis-Menten Equation)或米曼氏动力学(Michaelis-Menten kinetics)是由Leonor Michaelis和Maud Menten在1913年提出&#xff0c;是酶学中极为重要的可以描述多种非变异构酶动力学现象、表示一个酶促反应的起始速度…

    Adobe Illustrator作图

    一、将多张图片拼成一张 1.文件---新建----设置画板数量以及排列情况 将需要拼的的图片拖入画板中就可&#xff08;PDF格式的图片也可以&#xff09;。 二、给每个子图加边框 四张图片拖入并调整好大小后&#xff0c;选择矩形工具&#xff0c;并在下方选择带一条红色斜线的“…

    尺规作图及其研究意义

    0x01 什么是尺规作图&#xff1f; 一般定义 尺规作图是指用无刻度的直尺和圆规作图。 尺规作图是起源于古希腊的数学课题。 只使用圆规和直尺&#xff0c;并且只准许使用有限次&#xff0c;来解决不同的平面几何作图题。 尺规作图使用的直尺和圆规带有想像性质&#xff0c;…

    Origin作图问题

    目录 1.图像边缘数据显示不全2.图例添加或更新3.隐藏的坐标轴显示4.设置颜色5.直方图柱子变细6.图层叠加7.多图层叠加调整位置&#xff08;共用1个坐标轴&#xff09; Origin作图&#xff0c;经常会遇到问题&#xff0c;简单汇总几个常用的。我的版本是9 1.图像边缘数据显示不…

    matlab极坐标系作图,matlab极坐标作图

    怎么用matlab画极坐标图 我要用matlab画极坐标图,一共有12个点的数据 m0=0.1349 θ=0 m1=0.12571.非封闭曲线,已归一化 clc clear t=0:pi/6:(2-1/6)*pi%初始化极角 m=[0.1349 0.1257 0.1405 0.1468 0.1399 0.1422 0.1612 0.1578 0.1402 0.1393 0.1228 0.1302];%初始化矢径 mm…

    OpenAI官宣:ChatGPT用户无需排队,直接可用联网和插件功能

    ChatGPT&#xff0c;宣布下周开始联网&#xff0c;并开放插件功能&#xff01; OpenAI ChatGPT和谷歌Bard的竞争&#xff0c;已经到了白热化的阶段。前几天谷歌I/O大会上&#xff0c;劈柴展示PaLM 2和Bard等新产品&#xff0c;让人们眼前一亮。 显然&#xff0c;OpenAI急了&…

    【C++课设】——杂志订阅管理系统(VS2019+MySQL+EasyX)

    &#x1f4d6; 前言&#xff1a;听说课设月就是放假月&#xff08;雾&#xff09;&#xff0c;谁想高强度了整整三周&#xff0c;前两周零基础Java数据库肝课设&#xff0c;现在零基础C连数据库GUI&#xff0c;人麻了&#xff0c;浅浅记录一下这次课设叭~ 目录 &#x1f552; 1…

    如何利用大数据让自己在股市不被割韭菜

    虽然我不是很懂足球&#xff0c;但是c罗还是知道的&#xff0c;最近关于他和可口可乐的新闻比较火。源于他在发布会上的时候一个小举动&#xff0c;在发布会上的时候他将面前的赞助商可口可乐的产品移走&#xff0c;公开号召大家“多喝白水”。事件发生后&#xff0c;C罗的巨星…

    讲讲真正的大数据杀熟割韭菜是怎么做的?

    最近朋友圈刷屏的一篇文章《我被美团会员割了韭菜》&#xff0c;应该很多人看过&#xff0c;美团也对此事做了回应。不知道回应有多少人相信&#xff0c;或者是美团到底有没有杀熟&#xff0c;这些事我们暂且不论。今天主要来聊聊我所了解的真正的大数据杀熟是怎么做的。 到底存…

    【ChatGPT炒菜攻略】如何做韭菜

    ChatGPT可以化身为一名厨师&#xff0c;不仅有着扎实的厨艺基础和丰富的经验&#xff0c;而且也对食材的选取十分讲究&#xff0c;时常会寻找新鲜和有潜力的材料进行尝试和创新&#xff0c;从而创造出更加优秀和惊艳的佳肴。同时&#xff0c;我注重菜品的色、香、味、形均衡&am…

    市值216亿芯片股收监管工作函;工信部将采取举措推动算力发展;文心大模型3.5能力已超ChatGPT 3.5丨每日大事件...

    ‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 阅文集团推出国内首个网文大模型 7月19日&#xff0c;国内最大网络文学平台阅文集团正式发布“阅文妙笔大模型”。阅文集团总裁兼CEO侯晓楠表示&#xff0c;这是国内一个网文大模型&#xff0c;也是最懂网文的模…