Java 发送短信工具类

Background

发送短信需要第三方短信接口(收费的),这里以诚立业短信接口为例,基于Hutool工具类进行封装,可以直接使用(当然需要你自己买账号)

1、直接上干货 SMSUtil

/**
 * 【发送短信工具类】
 * 注:基于诚立业短信平台
 */
private static class SMSUtil {

    /**
     * @param phoneNumber 接口短信的手机号
     * @param msg     短信内容
     * @return 返回 true | false
     */
    public static boolean sendMsg(String phoneNumber, String msg) {
        // 诚立业短信接口
        String SEND_URL = "https://www.sms-cly.cn/v7/msg/submit.json";
        //发短信的账号和密码
        String USERNAME = "wlf";
        String PASSWORD = "123";
        // 前缀签名(这个需要你和人家确定下,内容中是否需要包含固定格式)
        String PREFIX = "【歪撒科技】";
        msg = PREFIX + msg;
        MsgSubmit msgSubmit = MsgSubmit.builder()
                .userName(USERNAME)
                .sign(SecureUtil.md5(USERNAME + PASSWORD + phoneNumber + msg))
                .mobile(phoneNumber)
                .content(msg)
                .seqid(IdUtil.simpleUUID())
                .build();
        int status = HttpRequest.post(SEND_URL)
                .charset("UTF-8")
                .body(JSONUtil.toJsonStr(msgSubmit))
                .timeout(20000)
                .execute()
                .getStatus();
        return status == 200;
    }
}

2、Maven 依赖

注:idea 使用 lombok 还需要装插件。

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.6.3</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.6</version>
</dependency>

3、MsgSubmit

package com.cloudansys.util.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 短信提交格式
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MsgSubmit implements Serializable {

    private static final long serialVersionUID = 1L;

    private String userName;     // 用户名
    private String sign;         // 签名 Md5(userName,passwd,mobile,content)
    private String mobile;       // 多个号码用英文逗号隔开。最多不超过1万个
    private String content;      // 短信内容
    private String seqid;        // 流水号 如果不指定则系统指定.不要带|字符
    private String ext;          // 扩展号 106码号后面扩展的部分
    private String extraData;    // 用户扩展数据.报告交付时原样返回.不要带|字符
    private Integer isms;        // 是否是国际短信 1-是(港澳台国际短信) 0-否(不包含港澳台的国内短信) 默认不填则为否
    private String dstime;       // 定时时间  时间格式 yyyy-MM-dd HH:mm:ss

}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个简单的Java发送短信工具类: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class SMSUtil { private static final String SMS_URL = "http://sms.com/sendSMS.php"; private static final String SMS_USERNAME = "your_username"; private static final String SMS_PASSWORD = "your_password"; public static void sendSMS(String phoneNumber, String message) throws Exception { // Encode phone number and message String encodedPhoneNumber = URLEncoder.encode(phoneNumber, "UTF-8"); String encodedMessage = URLEncoder.encode(message, "UTF-8"); // Create the SMS URL String smsUrl = SMS_URL + "?username=" + SMS_USERNAME + "&password=" + SMS_PASSWORD + "&phone=" + encodedPhoneNumber + "&message=" + encodedMessage; // Send the SMS URL url = new URL(smsUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); // Read the response BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String response = reader.readLine(); reader.close(); // Check the response if (!response.startsWith("OK")) { throw new Exception("Failed to send SMS: " + response); } } } ``` 使用方式: ```java try { SMSUtil.sendSMS("1234567890", "Hello, World!"); System.out.println("SMS sent successfully"); } catch (Exception e) { System.err.println("Error sending SMS: " + e.getMessage()); } ``` 注意:这个工具类是一个简单的示例,实际使用时需要替换SMS_URL、SMS_USERNAME和SMS_PASSWORD为你自己的信息。另外,这个工具类只支持GET方式发送短信,实际使用时可能需要根据短信服务商的要求修改为POST方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaiSaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值