By Kenny Lai, Solutions Architect
Alibaba Cloud Short Message Service (SMS) is a messaging service that covers the globe, providing convenient, efficient, and intelligent communication capabilities that help businesses quickly contact their customers. You can call API operations to send verification codes, notifications, and marketing messages. SMS delivered 600 million messages to 200 million users during the Alibaba 11/11 Global Shopping Festival.
Steps
Check if your Alibaba Cloud account is an enterprise account. If you have previously registered for an individual account, you can file a work order to request for an upgrade.
Locate SMS console on the Alibaba Cloud console.
From the SMS console overview page, navigate to Go Globe.
Click New Content
Content Type : OTP
Subject : SMS OTP
SMS Content: Your Verification Code: ${code}, will expire 5 minutes later.
Click Submit and a new entry will appear.
Record the Content Code as it will be reference in the program later.
Use the sample code below
Remember to update the variables as follows:
accessKeyId
: RAM account's access keyaccessKeySecret
: RAM account's Secrettel
: Telephone number you would send the SMS toSample Code
package com.alicom.dysms.api;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20180501.QuerySendDetailsRequest;
import com.aliyuncs.dysmsapi.model.v20180501.QuerySendDetailsResponse;
import com.aliyuncs.dysmsapi.model.v20180501.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20180501.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
/**
* Created on 2018.05.01
*
* The is a DEMO that introduces how to use SMS send Api and SMS query Api.
* Two jar packages are required,please put them in the libs directory
* 1:aliyun-java-sdk-core.jar
* 2:aliyun-java-sdk-dysmsapi-inter.jar
*
* notice : The Program was encoded with standard of UTF-8
*
*/
public class SmsDemo {
// product name, please remain unchanged
static final String product = "Dysmsapi";
// product domain, please remain unchanged
static final String domain = "dysmsapi.ap-southeast-1.aliyuncs.com";
// AccessKey and AccessKeySecret , you can login sms console and find it in API Management
static final String accessKeyId = "use your Key id";
static final String accessKeySecret = "use your Key Secret";
static final String tel = "yourphonenumber with IDD prefix";
public static SendSmsResponse sendSms() throws ClientException {
try {
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
IClientProfile profile = DefaultProfile.getProfile("ap-southeast-1", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("ap-southeast-1", "ap-southeast-1", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
// initiate the SendSmsRequest, read help documents for more parameters instructions
SendSmsRequest request = new SendSmsRequest();
// send to
request.setPhoneNumbers(tel);
// ContentCode , you can login sms console and find it in Content Management
request.setContentCode("SMS_10350063"); // this should match the content code shows in sms console
// set the value for parameters in sms Content with JSON format. For example, the content is "Your Verification Code : ${code}, will be expired 5 minutes later"
request.setContentParam("{\"code\":\"1234\"}");
// Optional,custom field, this value will be returned in the sms delivery report.
request.setExternalId("E0012033");
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
return sendSmsResponse;
} catch (Exception e) {
System.out.println(e);
return null;
}
}
public static void main(String[] args) throws ClientException, InterruptedException {
// send sms
SendSmsResponse response = sendSms();
System.out.println("send sms response----------------");
System.out.println("Code=" + response.getResultCode());
System.out.println("Message=" + response.getResultMessage());
System.out.println("RequestId=" + response.getRequestId());
System.out.println("BizId=" + response.getBizId());
Thread.sleep(3000L);
//done
}
}
Corresponding maven pom file
<?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.alicom.dysms</groupId>
<artifactId>alicom-dysms-api</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>com.aliyun.dysms</groupId>
<artifactId>alicom-dysms-api</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/aliyun-java-sdk-dysmsapi-inter-1.0.0.jar</systemPath>
</dependency>
</dependencies>
</project>
And the dysms jar package can be downloaded from link https://www.alibabacloud.com/help/doc-detail/73676.htm
You should receive an SMS as shown in the image below.
From the console, you can check the SMS delivery info.
The SMS console also supports checking the delivery status (you can also get the info using API).
That's it. Enjoy using Alibaba Cloud Short Message Service (SMS) to global.
2,599 posts | 762 followers
FollowAnna Chat APP - November 4, 2024
Alibaba Clouder - July 24, 2019
Anna Chat APP - September 3, 2024
Dikky Ryan Pratama - May 31, 2023
Anna Chat APP - September 6, 2024
Anna Chat APP - November 8, 2024
2,599 posts | 762 followers
FollowShort Message Service (SMS) helps enterprises worldwide build channels to reach their customers with user-friendly, efficient, and intelligent communication capabilities.
Learn MoreA simple and efficient email service to help you send transactional notifications and batch email
Learn MoreA message queuing and notification service that facilitates smooth transfer of messages between applications
Learn MoreMore Posts by Alibaba Clouder
Raja_KT February 14, 2019 at 6:34 am
The response is the one we get back into the application, calling for authentication or verification... right?