阿里云SMS服务使用
什么是短信服务
短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。
支持向国内和国际快速发送验证码、短信通知和推广短信,服务范围覆盖全球200多个国家和地区。国内短信支持三网合一专属通道,与工信部携号转网平台实时互联。电信级运维保障,实时监控自动切换,到达率高达99%。完美支撑双11期间20亿短信发送,6亿用户触达。
最主要的功能是短信通知、短信验证码和推广短信。
快速入门
短信格式
短信服务发送的短信中包括短信签名和短信模板。短信签名是短信发送者的署名,表示发送方的身份;短信模板是发送的短信内容。
使用短信签名和短信模板前必须提交短信服务审核,审核通过的签名和模板才能使用在短信中。
短信分为国内短信和国际港澳台短信,其中国内短信包括验证码短信、短信通知和推广短信。以验证码短信为例,短信的格式为:
【阿里云】您正在申请手机注册,验证码为:${code},5分钟内有效!
其中:
- 模板内容为:您正在申请手机注册,验证码为:${code},5分钟内有效!。
- 模板变量为:${code}。
短信服务使用流程
实名认证
使用短信服务前,必须通过实名认证。实名认证的类型包括个人认证和企业认证,个人认证表示账号持有者是个人、以个人身份使用短信服务;企业认证表示账号持有者是企业或政府部门,以企业身份使用短信服务。个人认证和企业认证账号的权限不同,详细说明请参考认证模式。
实名认证的操作步骤:
开通短信服务
请在短信服务产品详情页面单击立即购买,开通短信服务。短信服务按量计费,同时提供国内短信套餐包,计价策略请查看计费说明。
申请短信签名
短信服务发送的短信中包括短信签名和短信模板。短信签名是短信发送者的署名,表示发送方的身份;短信模板是发送的短信内容。
使用短信签名和短信模板前必须提交短信服务审核,审核通过的签名和模板才能使用在短信中。
申请短信签名,请参考以下文档在控制台签名管理页面操作:
申请短信模板
短信模板是发送的短信内容。短信分为国内短信和国际港澳台短信,其中国内短信包括验证码短信、短信通知和推广短信,不同类型的短信使用不同的短信模板,遵循不同的模板规范。
申请短信模板,请参考以下文在控制台模板管理页面档操作:
发送短信
短信服务支持通过API/SDK和群发助手发送短信。
- 群发助手
群发助手是一种SaaS工具,可以在控制台上手动选择签名和模版对批量手机号发送,适用于初次接触短信服务的新手。 - 短信服务API
短信服务提供多个短信发送API接口,可以快捷接入自建系统,迅速完成短信发送任务,实现本地业务和短信业务的一体化。
注意:使用短信服务API之前,请先确认您有一对AccessKey。
当前支持通过以下方式调用短信服务API。 - (推荐)不同编程语言的短信服务SDK
- 阿里云 OpenAPI Explorer
- API URL 请求
短信发送接口
OPENAPI地址
sendSMS代码如下:
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/*
pom.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>
*/
public class SendSms {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}