手机:MX4
-
阿里大鱼进行发短信业务---使用详细步骤-Java操作
2021-01-06 17:12:52文章目录前言一、开通短信服务二、快速学习三、签名管理1. 何为签名2. 添加签名四、模板管理1. 何为模板2. 添加模板五、Java中使用阿里大鱼 前言 阿里大于(原阿里大鱼)是阿里通信旗下产品,融合了三大运营商的通信...文章目录
前言
- 阿里大于(原阿里大鱼)是阿里通信旗下产品,融合了三大运营商的通信能力。
- 阿里大于提供包括短信、语音、流量直充、私密专线、店铺手机号等个性化服务。
短信服务(Short Message Service)
是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码、短信通知等。 三网合一专属通道,与工信部携号转网平台实时互联。电信级运维保障,实时监控自动切换,到达率高达99%。- 短信服务API提供短信发送、发送状态查询、短信批量发送等能力,在短信服务控制台上添加签名、模板并通过审核之后,可以调用短信服务API完成短信发送等操作。
一、开通短信服务
- 步骤一
- 步骤二:
- 步骤三:
- 步骤四:登录
- 步骤五:开通
- 步骤六:激活,有的需要有的不需要,我这里不需要,因为以前办理过阿里云业务
- 步骤七:充钱,一点点就好了,一条短信0.045
二、快速学习
最主要的是左边的侧边栏,都浏览一下,学习一下。
三、签名管理
1. 何为签名
你收到的垃圾短信中,或者验证码短信中的开头
2. 添加签名
需要两小时的审核
四、模板管理
1. 何为模板
就是短信内容
2. 添加模板
需要两小时的审核
五、Java中使用阿里大鱼
1. 开发文档
2. 用到的依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.feng.alidayu</groupId> <artifactId>alidayu-sendMessage</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>3.2.3</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.29</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons</artifactId> <version>2.0.0.RELEASE</version> </dependency> </dependencies> </project>
3. 开发前注意的点
- 申请签名和模块,要求挺多,需要两小时。
- 需要申请 AccessKey , 可以在开发文档中
API参考
中AccessKey
文章中根据流程申请 - 申请之后还需要为 AccessKey 进行 赋予 权限 ``
4. 自己的开发案例
里面有的类不再编写,
package com.feng.alidayu; import com.alibaba.fastjson.JSONObject; 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.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import org.springframework.util.StringUtils; public class SendMessage { /** * 发送短信服务的参数 * accessKeyId 阿里云AK * accessKeySecret 阿里云SK * product 云通信短信API产品 * domain 产品域名 */ //初始化ascClient需要的几个参数 static final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改) static final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改) //替换成你的AK static final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2LTAI4GCRrneGRQfmX78mxKzm static final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤 2WOjZlJVfOH4oOnCjPqasvlhq7UbmTK1 public static void main(String[] args) { // 发送短信 sendSms(); } /** * 普通发送短信验证码接口 */ public static void sendSms() { String IP = ""; String method = "selectsms"; try { //设置超时时间-可自行调整 System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); System.setProperty("sun.net.client.defaultReadTimeout", "10000"); //初始化ascClient,暂时不支持多region(请勿修改) IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); //组装请求对象 SendSmsRequest request = new SendSmsRequest(); //使用post提交 request.setMethod(MethodType.POST); //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000” request.setPhoneNumbers("1500000000"); //必填:短信签名-可在短信控制台中找到 request.setSignName("云通信"); //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 request.setTemplateCode("SMS_1000000"); //向数据库中插入数据 // SmsActivationModel smsActivationModel = new SmsActivationModel(); //设置验证码 // smsActivationModel.setVerificationCode(sixValCode); //设置入库时间 // smsActivationModel.setRecordTime(new Date()); //设置用户手机号 // smsActivationModel.setUserCode(phoneNo); //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败 //参考:request.setTemplateParam("{\"变量1\":\"值1\",\"变量2\":\"值2\",\"变量3\":\"值3\"}") request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}"); //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段) //request.setSmsUpExtendCode("90997"); //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 request.setOutId("yourOutId"); //请求失败这里会抛ClientException异常 SendSmsResponse sendSmsResponse = null; sendSmsResponse = acsClient.getAcsResponse(request); if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { // 请求成功 // int i = smsActivationService.insertSmsActivationModel(smsActivationModel); } } catch (ClientException e) { System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 短信服务系统参数错误"); } catch (ClassCastException e) {//请求参数格式错误 System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 请求参数格式错误"); } catch (NumberFormatException e) { System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 请求参数格式错误"); } catch (Exception e) {//系统未知异常 System.out.println("ResponseCode.SYSTEM_REQ_FAIL: 短信服务系统参数错误"); } } /** * 注册时使用 * * @param data * @return */ public static void regselectsms(JSONObject data) { String IP = ""; String method = "regselectsms"; try { String phoneNo = (String) data.get("phoneNo"); if (!StringUtils.isEmpty(phoneNo)) { //检验手机号是否正确 String MPHONE_REGEX = "(\\+\\d+)?1[123456780]\\d{9}$"; if(!phoneNo.matches(MPHONE_REGEX)){ System.out.println("手机号输入错误");; } //判断用户是否存在 userbaseService 用户业务类,此处不再创建 if(userbaseService.selectUserbaseByPhone(phoneNo) != null){ System.out.println("用户不存在");; } //判断时间60秒内不能重复请求 smsActivationService 信息时间验证类,此处不再创建 if (smsActivationService.valTimeOut(phoneNo)) { System.out.println("60s内重复请求短信服务"); } //自助调整超时时间 System.setProperty("sun.net.client.defaultConnectTimeout", "300000"); System.setProperty("sun.net.client.defaultReadTimeout", "300000"); //初始化acsClient,暂不支持region化 IClientProfile profile = DefaultProfile.getProfile("cn-beijing", accessKeyId, accessKeySecret); DefaultProfile.addEndpoint("cn-beijing", "cn-beijing", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); //组装请求对象 SendSmsRequest request = new SendSmsRequest(); //待发送手机号 request.setPhoneNumbers(phoneNo); //短信签名-可在短信控制台中找到 request.setSignName("企通查"); //短信模板-可在短信控制台中找到 request.setTemplateCode("SMS_121146507"); //模板中的变量替换JSON串,如模板内容为"您的验证码为${code}"时,此处的值为 String sixValCode = CodeUtil.getSixValCode(); //向数据库中插入数据 // SmsActivationModel smsActivationModel = new SmsActivationModel(); //设置验证码 // smsActivationModel.setVerificationCode(sixValCode); //设置入库时间 // smsActivationModel.setRecordTime(new Date()); //设置用户手机号 // smsActivationModel.setUserCode(phoneNo); request.setTemplateParam("{\"code\":\"" + sixValCode + "\"}"); //此处可能会抛出异常,注意catch //发短信 SendSmsResponse response = acsClient.getAcsResponse(request); if (!"OK".equals(response.getCode())) {//短信发送失败 System.out.println("短信发送失败"); } // int i = smsActivationService.insertSmsActivationModel(smsActivationModel); } else {//缺少参数 System.out.println("手机号不能为空");; } } catch (ClientException e) { System.out.println("短信服务系统参数错误"); } catch (ClassCastException e) {//请求参数格式错误 System.out.println("请求参数格式错误"); } catch (NumberFormatException e) { System.out.println("请求参数格式错误"); } catch (Exception e) {//系统未知异常 System.out.println("请求参数格式错误"); } } }
-
Java发短信实例
2019-09-09 17:09:58首先准备发短信需要的 SID Token 发送人的号码 推荐一个发短信的API的网站 :https://www.twilio.com/可以到里面注册帐号申请SID和Token 安装步骤注册填写资料,填写绑定手机号码,注册完之后在控制台里可以看到如下...- 首先准备发短信需要的
SID
Token
发送人的号码
推荐一个发短信的API的网站 :https://www.twilio.com/可以到里面注册帐号申请SID和Token
安装步骤注册填写资料,填写绑定手机号码,注册完之后在控制台里可以看到如下:
上面标注的地方要记下来,待会用到发短信要用到 - 在项目中使用maven引入jar包
<!-- 短信驱动Jar --> <dependency> <groupId> com.twilio.sdk </groupId> <artifactId>twilio</artifactId> <version>7.41.2</version> </dependency>
写一个测试类
按照注册帐号提供的SID和Token,Trial Number 发送号码 代入进去,运行发送成功后会返回一个执行成功的ID
可以参考官网的官方文档:地址链接 https://www.twilio.com/docs/sms/quickstart/java 图片如下:
是不是很简单,行动起来你也试试看吧!! - 首先准备发短信需要的
-
能接受短信不能发短信
2016-08-06 17:37:00手机学校办理的,因为还有余额和套餐所以带回来用,但最近发现不能发短信,(可以打接电话、收短信)。查了一下问题,跟短信中心有问题,短信先发送到服务商那里,本地卡装上手机可以自动获取当地的短信中心,但是...手机卡:移动备注:外地手机学校办理的,因为还有余额和套餐所以带回来用,但最近发现不能发短信,(可以打接电话、收短信)。查了一下问题,跟短信中心有问题,短信先发送到服务商那里,本地卡装上手机可以自动获取当地的短信中心,但是外地的卡并不能,所以要自己设置。步骤:进入拨号界面,输入"*#*#4636#*#*",进入工程模式→手机信息点击“需要打开IMS注册”变成“需要关闭IMS注册”点击“启用通过IMS发送短信的功能”变成“停用通过IMS发送短信的功能”然后进入短信设置找到短信中心更改相应号码:手机卡归属地所在的移动/联通的短信中心号转载于:https://www.cnblogs.com/tpanda/p/5744531.html
-
centos6.5 短信猫部署发短信
2017-11-30 13:08:00本文为在centos下部署短信猫发短信使用,以下为具体环境和步骤说明,欢迎留言! 一、环境说明 服务器:centos6.5 x64 依赖包:lockdev-1.0.1-18.el6.x86_64.rpm、lrzsz-0.12.20-27.1.el6.x86_64.rpm、minicom-...本文为在centos下部署短信猫发短信使用,以下为具体环境和步骤说明,欢迎留言!
一、环境说明
- 服务器:centos6.5 x64
- 依赖包:lockdev-1.0.1-18.el6.x86_64.rpm、lrzsz-0.12.20-27.1.el6.x86_64.rpm、minicom-2.3-8.el6.x86_64.rpm 、perl-XML-Parser-2.36-7.el6.x86_64.rpm及压缩包 gnokii-0.6.31.tar.gz和intltool-0.41.1.tar.gz。
二、步骤
1. 安装rpm包
rpm -ivh lockdev-1.0.1-18.el6.x86_64.rpm
rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm
rpm -ivh minicom-2.3-8.el6.x86_64.rpm
rpm -ivh perl-XML-Parser-2.36-7.el6.x86_64.rpm
- 安装示意图如下:
2. 编译安装intltool,依次执行下面的命令
# tar zxvf intltool-0.41.1.tar.gz
# cd intltool-0.41.1
# ./configure
# make && make install3. 编译安装minicom,依次执行下面的命令
# tar zxvf gnokii-0.6.31.tar.gz
# cd gnokii-0.6.30
#./configure
# make && make install
4. 配置minicom
# minicom -s
- 选择 serial port setup
- 进入后输入A,并编辑当前接入服务器的短信猫所处的com口,可以在任一目录下执行ll /deb/tty*,看到ttyUSB0或ttyUSB1时即可确定com口,波特率一般为115200;
- 按下回车,选中Save setup as dfl并 选中Exit from Minicom即可退出minicom。
5. 配置gnokii
- 创建目录并复制样例
# mkdir -p /root/.config/gnokii
# cp /usr/local/share/doc/gnokii/sample/gnokiirc /root/.config/gnokii/config- 编辑并修改配置文件config
# vi /root/.config/gnokii/config
[global]
port = /dev/ttyUSB1
model = AT
initlength = default
connection = serial
use_locking = no
serial_baudrate = 115200
smsc_timeout = 10[xgnokii]
allow_breakage = 0
[gnokiid]
bindir = /usr/local/bin/[connect_script]
TELEPHONE = 12345678
[disconnect_script]
[logging]
debug = off
rlpdebug = off
xdebug = off #上述三个开关为debug日志,打开后可以发送短信短信的过程
[phone_fake]
port = foobar
model = AT
connection = serial[fake_driver]
sms_inbox = /tmp/sms6. 测试发短信
echo -e "发送内容" |/usr/local/bin/gnokii --sendsms 1731773****(号码)
其中“”中的内容为发的内容,后面的号码为接收短信的手机号码。
7.附录
Lockdev下载路径:
https://centos.pkgs.org/6/centos-x86_64/lockdev-1.0.1-18.el6.x86_64.rpm.html
lrzsz下载路径:
https://pkgs.org/download/lrzsz
minicom下载路径:
https://centos.pkgs.org/6/centos-x86_64/minicom-2.3-8.el6.x86_64.rpm.html
perl-XML-Parser下载路径:
https://centos.pkgs.org/6/centos-x86_64/perl-XML-Parser-2.36-7.el6.x86_64.rpm.html
intltool下载路径:
http://download.chinaunix.net/download.php?id=38033&ResourceID=12284
gnokii下载路径:
http://www.gnokii.org/download/gnokii/
转载于:https://www.cnblogs.com/ddpeng/p/7928437.html
-
python如何控制手机发短信_利用Python实现手机短信监控通知
2020-12-03 11:01:38当然,我相信,用Python发短信应用场景不止此一处,下面我们开始Python发短信的实现。首先,看下成果展示:然后,看下代码实现:是不是非常简单!现在开始具体讲解,如何实现Python发短信功能。操作步骤1、安装模... -
通过java调用短信猫发短信
2017-08-15 14:23:10原地址:... 具体的操作步骤如下: 1、把smslib-3.3.0b2.jar、comm.jar与log4j-1.2.11.jar,放入到工程的lib中; 2、把javax.comm.properties放到%JAVA_HOME%/jre/lib下; 3、把win32com.dll放到 -
Swift3.0 中实现发短信功能
2017-03-30 23:19:32要实现发短信的功能其实不难,可以利用系统的MessageUI.framework框架 就可以实现,步骤如下: 1.首先判断设备是否有发送短信功能 2.如果设备允许发送短信,创建一个MFMessageComposeViewController视图控制器... -
Python 发短信 twilio 快速实现
2020-12-02 15:20:50目标:通过python给手机发送短信 步骤: 1、基础环境配置 2、注册twilio账号 3、申请一个免费的twilio号码 4、代码并测试 1、基础环境 基础环境:Python语言;安装核心工具包numpy、pandas、sklearn、... -
【319】Python 通过 Twilio 发短信
2018-06-20 15:35:00参考:python利用twilio模块给自己发短信 参考:使用python实现往手机发短信(基于twilio) 步骤如下: 登录 Twilio 网站注册,貌似需要***,包括用户名、密码、手机号、项目目的&名称等; 通过 Console... -
【Java学习】如何使用Java发短信
2021-03-04 11:57:04想要用Java发短信基本步骤: 1.在短信接口服务商注册个账号(如阿里云) 注意,个人账号是不能发送营销短信的。 2.将短信签名和模板都编辑并审核通过。 3.下载官方提供的Java语言Demo项目,将相关参数(如模板ID、... -
阿里云 第三方发送短信服务 开发步骤
2020-04-02 22:29:42阿里云短信发送工具类 ...方便的是可以直接用支付宝扫码登录; 里面的短信服务 ...(不要yy可以随意发短信,模板顾名思义四是有标准的,申请也是,如果不符合模板标准是不会通过的,申请一般一天就搞定了)... -
PHP发短信 PEAR 包:Services_Sms
2013-08-15 17:57:00PHP发短信 PEAR 包:Services_Sms 对于这种第三方库,PHP官方称之为PEAR,需要... ... 由于项目要发短信,所以我开发了一个,现在整理开源出来。安装步骤如下: pear channel-discover sinkcup.github.io/pear ... -
Android 短信验证码倒计时60s实现步骤
2021-03-30 21:14:51首先网上有很多倒计时60s的文章,但是我觉得讲的都不够详细,把自己写好的代码发出来供大家参考一下。 1.我是用的Android 已经封装好的定时器类CountDownTimer 首先创建一个类TimeCount继承CountDownTimer,类名可以... -
删除的页面怎么恢复_苹果删除短信怎么恢复 苹果删除短信恢复方法【详细步骤】...
2021-01-10 13:48:09手机短信现在基本上还是在用,即使大部分功能已经被一些即时通讯工具所替代,但是有些人际可能还是不是很方便用即时通讯工具来进行沟通,所以有时候还需要发短信。短信里大部分都是一些垃圾短信,所以在删除这些垃圾... -
情人节之每天给你的女朋友发短信(nodejs版)
2017-08-25 19:21:47看到一老兄用php和阿里云短信服务做了一个每天给女朋友发短信的案例,挺有意思,自己也用nodejs做了一版。https://segmentfault.com/a/11... 步骤1 现在阿里云通信中的短信签名中申请签名,签名在你短信中是以: ... -
Qt下面利用4G 模块SIM7600发短信调试总结
2018-08-18 17:14:45项目需要在基于Qt的界面下发送短信,选用4G模块SIM7600通过AT指令发送短信,和小伙伴调了一天多,终于可以了,下面简单总结一下调试过程中遇到的问题和学习到的经验,供大家参考,少走弯路。...2、发送中文短信步骤... -
使用python代码给手机发短信详解(twilio的使用)
2020-02-24 11:27:20使用python代码给手机发短信详解twilio网页注册实现代码效果演示 使用python代码给手机发送短信,在这里给大家推荐一个比较好的免费网站twilio网页申请 下面给大家介绍一下使用及申请的步骤: twilio网页注册 首先... -
N7100/GALAXY Note2 解决短信发件人实际发送短信时间
2014-02-14 14:25:15三星 N7100/GALAXY Note2 解决短信发件人实际发送短信时间... 解决短信发件人实际发送短信时间显示为当前时间的bug 如果别人给你发了一条短信,而你手机当前是关机状态,那么当你开机后,收到短信时间为当前... -
移动的聊天软件飞信2008-可以免费往手机发短信
2009-01-12 20:56:21移动的聊天软件飞信2008-可以免费往手机发短信! ...分享步骤:双击安装包下载安装--注册--输入验证码--注册成功--登录--免费发短信 如果不喜欢删除即可,看到比较好,而且体积不大,才放在这! -
Android信使intent学习源码,实现打电话,发短信
2011-09-13 10:26:17【本demo知识要点】 请查看《Android组件之间的信使intent学习源码,启动activity并传值》 通过本demo可以学习到: ...启动发短信程序。 【实现步骤】 实例化intent类; 设置intent的actio -
如何使用Python发送一条短信!如果用Python发千条万条短信呢?
2020-08-03 14:29:39让您的python会发短信 首先我们知道,我们不可能完全凭借python直接向手机发送短信的,就算有牛人做出了这样的技术,那么运营商也是绝对不会允许这样的情况发生的 可以用于用户注册验证/手机认证/紧急通知等场景... -
Android11 flutter中webview调用系统拨号、发短信
2021-03-25 22:20:44Android11中有个坑 在Android下面的AndroidManifest.xml中需要额外声明一个权限 <...步骤 使用url_launcher插件,去官网下载之后,导包 import ‘package:url_launcher/url_launcher.dart’; cla -
用python twilio模块实现发手机短信的功能
2019-10-02 16:52:59前排提示:这个模块不是用于对陌生人进行短信轰炸和电话骚扰的,这个模块也没有这个功能,如果是抱着这个心态来的,可以关闭网页了 语言:python 步骤一:安装twilio模块 pip install twilio 步骤二:进入官网注册 ... -
电商人必读!发了这么多双十一促销短信可能都发错了
2019-12-02 20:00:01尽管如此,可以毫不客气地说,90%的促销短信都发错了 常规操作流程 一般来说,促销短信的发送通常包含下几个步骤: 1. 文案准备 准备2-3个备选方案,提交给主管/老板做最终选择 2. 宝贝/店铺链接转为... -
api发送短信用户名如何防止盗发
2018-07-16 23:44:20防止盗发大概有一下几点: 1.短信发送间隔设置-------> 设置同一号码重复发送的时间间隔,一般设置为60到120秒 2.ip限定----> 根据业务特点,设置每个IP每天的最大发送量 3.流程限定------>... -
Juniper SA SSL ×××配置宁盾DKEY短信动态密码步骤
2012-08-03 11:31:051.方案简介 传统×××的双因子认证技术是基于硬件令牌方式,IT管理员会为每个×××用户分配分发一只令牌,×××用户登录时输入令牌上显示的6位随即数字,即可...短信密码通过短信方式将包含随机密码的文本发... -
= 电话拨号器/点击事件写法 =发短信
2016-10-01 16:29:00= 电话拨号器/点击事件写法 =开发安卓应用步骤: - 1. 写UI, 即布局文件. - 2. 写代码, Activity, ContentProvider, Service, 等等. - 3. 在清单文件中配置 Activity 等四大组件. - 4. 在清单文件中添加权限.下面...