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

}
上一篇:IDEA安装Lombok插件失败的解决方案


下一篇:IDEA 2021.x 下载Lombok等插件无法安装的问题