一、阿里云
1.搜索短信服务并开通
2.添加签名
进入界面如下图所示
注:
阿里云审核比较严格,需要你有一个成熟的项目,而且签名必须和项目名称相同。两种方式的要求也写在上面图片中了。本人亲测,这个不能糊弄,如果域名不能访问或者未提供测试账号,又或者项目名与签名不符,都不会通过审核,非常难受。
不知道怎样将自己域名绑定项目的,可以看我之前的博客:云服务器通过域名访问自己的项目
3.添加模板
进入后如下图所示,按要求填写即可
4.获取AccessKey
为了保障安全,建议使用子账户
创建用户与用户组
将刚才创建的用户添加到组里
注:很重要!!!!添加后会生成一个AccessID与AccessKey一定要记住保存下来,后续这个将无法获取,后面代码中需要注入。
添加授权
5.代码使用
可以根据自己使用的语言选择,阿里云提供了多种语言的模板。下面以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.google.gson.Gson;
import java.util.*;
import com.aliyuncs.dysmsapi.model.v20170525.*;
public class SendSms {
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", "<your-access-key-id>", "<your-access-key-secret>");
/** use STS Token
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", // The region ID
"<your-access-key-id>", // The AccessKey ID of the RAM account
"<your-access-key-secret>", // The AccessKey Secret of the RAM account
"<your-sts-token>"); // STS Token
**/
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers("1368846****");//接收短信的手机号码
request.setSignName("阿里云");//短信签名名称
request.setTemplateCode("SMS_20933****");//短信模板CODE
request.setTemplateParam("张三");//短信模板变量对应的实际值
try {
SendSmsResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
也可以将该代码封装为一个方法或者工具类直接调用。
注:使用该代码之前必须要导入官方提供的jar包。如果为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>1.1.0</version>
</dependency>