亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享🎁。每一个点赞👍,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟🤗!
在如今的很多应用场景中,短信发送功能是必不可少的,比如用户注册验证、密码找回等等。阿里云提供了便捷可靠的短信服务,今天我们就来详细讲讲如何在 Java 项目中利用阿里云来发送短信。
一、前期准备
-
注册阿里云账号并开通短信服务
首先,你需要有一个阿里云账号,如果没有的话,可以前往阿里云官网(阿里云-计算,为了无法计算的价值 )进行注册。注册完成后,登录阿里云控制台,搜索 “短信服务” 并开通该服务。 -
创建短信签名和短信模板
在短信服务中,你要创建符合你业务需求的短信签名(一般是代表发送短信的主体名称,需要审核通过)以及短信模板(短信具体的内容格式,包含一些变量占位符等,同样需要审核)。审核通过后,我们才能在代码中使用它们来发送短信。 -
获取 AccessKey 和 SecretKey
进入阿里云控制台的 “AccessKey 管理” 页面,创建一对 AccessKey 和 SecretKey。这两个密钥非常重要,相当于程序访问阿里云短信服务的凭证,一定要妥善保管,不要泄露出去。
二、项目搭建及依赖引入(以 Maven 项目为例)
-
创建 Java 项目(如果已有项目可跳过此步)
使用你常用的 IDE(如 Intellij IDEA、Eclipse 等)创建一个新的 Java 项目,或者打开已有的 Java 项目。 -
引入阿里云短信服务的 Java SDK 依赖
在项目的pom.xml
文件(Maven 项目配置文件)中添加如下依赖:<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.3</version> </dependency> <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>2.1.0</version> </dependency>
上述依赖会引入阿里云核心 SDK 以及短信服务相关的 Java 开发包,方便我们后续调用阿里云的短信接口。
三、编写代码实现短信发送功能
下面是一个简单的 Java 类,用于实现发送短信的功能:
java">import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v2.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v2.SendSmsResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.Profile;public class AliyunSmsSender {// 你的阿里云短信服务的AccessKey IDprivate static final String ACCESS_KEY_ID = "your_access_key_id";// 你的阿里云短信服务的SecretAccessKeyprivate static final String SECRET_ACCESS_KEY = "your_secret_access_key";// 短信签名名称,要和你在阿里云控制台审核通过的一致private static final String SIGN_NAME = "your_sign_name";// 短信模板Code,对应阿里云控制台审核通过的短信模板private static final String TEMPLATE_CODE = "your_template_code";public static void sendSms(String phoneNumbers, String templateParam) throws ClientException {// 设置地域ID,短信服务对应的地域,比如国内常用的是"cn-hangzhou"Profile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESS_KEY_ID, SECRET_ACCESS_KEY);IAcsClient client = new DefaultAcsClient(profile);SendSmsRequest request = new SendSmsRequest();// 设置发送短信的电话号码,支持多个号码,以逗号分隔request.setPhoneNumbers(phoneNumbers);// 设置短信签名名称request.setSignName(SIGN_NAME);// 设置短信模板Coderequest.setTemplateCode(TEMPLATE_CODE);// 设置短信模板中的变量参数,格式为JSON字符串,例如:{"code":"123456"}request.setTemplateParam(templateParam);SendSmsResponse response = client.sendSms(request);if (response.getCode()!= null && response.getCode().equals("OK")) {System.out.println("短信发送成功");} else {System.out.println("短信发送失败,错误码:" + response.getCode() + ",错误信息:" + response.getMessage());}}public static void main(String[] args) {try {// 示例电话号码,这里替换成真实的接收短信手机号String phoneNumber = "138xxxxxxxx";// 示例短信模板参数,按照你的短信模板中定义的变量来设置对应的值,此处以JSON格式字符串示例String templateParams = "{\"code\":\"123456\"}";sendSms(phoneNumber, templateParams);} catch (ClientException e) {e.printStackTrace();}} }
在上述代码中:
- 首先定义了一些常量,包括
ACCESS_KEY_ID
、SECRET_ACCESS_KEY
、SIGN_NAME
和TEMPLATE_CODE
,这些需要替换成你自己在阿里云控制台获取和配置的实际内容。 sendSms
方法接收要发送短信的手机号码以及短信模板对应的参数(以 JSON 格式字符串传入,根据模板中的变量来设置具体值),然后通过构建SendSmsRequest
对象,设置相关的请求参数,如电话号码、签名、模板代码和模板参数等,接着利用IAcsClient
发送请求,并根据响应结果判断短信是否发送成功。main
方法则提供了一个简单的测试示例,你可以将示例中的电话号码和短信模板参数替换为真实有效的内容进行测试。