【Github源码】

《上一篇》 介绍了Xmtool工具库中的发送邮件类库,今天我们继续为大家介绍其中的发送短信类库。

发送短信就像发送邮件一样,在软件系统中使用非常普遍,甚至比发送邮件还要常见,有些甚至是软件标配功能;例如现在的短信验证码登录、通过短信找回密码等等。

发送短信需要通过不同的额短信服务商提供的服务才可以,不同服务商提供了不同的SDK或HTTP服务,方法、参数各不相同,使用起来很不方便;系统运行上线后如果想切换一个短信发送平台,更是困难,相当于重新实现一次短信发送功能。

为了解决以上问题,本类库定义了一套标准方法,将各种短信发送平台基于标准方法进行二次封装;在使用时,无论是选用哪家的短信发送平台,都通过标准方法进行调用,使用方便,扩展维护也异常简单。

当前版本,系统实现了阿里短信和腾讯短信两个短信发送平台的二次封装,后续根据需要会持续更新。

public enum SmsProvider
{
Unset,
Alibaba, // 阿里短信平台
Tencent // 腾讯短信平台
}

使用时,需要首先获取一个短信发送对象ISmsProvider;获取对象时,需要指定短信发送平台。

获取短信发送对象

获取短信发送对象后,需要使用Config方法进行配置,这是正式发送短信前必须要进行的工作。

配置短信发送对象

配置完成后,用户便可以调用下面的任意一个方法进行短信发送操作,简单方便。

发送短信-标准版

发送短信-自定义版

1. 获取短信发送对象

public static ISmsProvider Sms(SmsProvider provider)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
// TODO

2. 配置短信发送对象

public static ISmsProvider Config(params string[] args)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);

// 阿里云短信平台配置方法
sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
"阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
/* 腾讯云短信平台
sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
"腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
*/ // TODO

3. 发送短信-标准版

说明:标准版默认使用配置时指定的签名和模板进行发送。
public bool Send(string templateParam, params string[] phoneNums)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);

// 阿里云短云平台配置方法
sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
"阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
/* 腾讯云短信平台
sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
"腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
*/ sms.Send("参数(替换成自己的,如:{\"code\":\"1234\"})", "136********");

4. 发送短信-自定义版

说明:自定义版可以在发送时指定签名和模板。
public bool Send2(string signName, string templateCode, string templateParam, params string[] phoneNums)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);

// 阿里云短信平台配置方法
sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
"阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
/* 腾讯云短信平台
sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
"腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
*/ sms.Send("自定义签名", "自定义模板", "参数(替换成自己的,如:1234)", "136********");

*另外,同时提供了SendAsync、Send2Async等功能相同的异步方法,使用时可根据需要选择。

【Github源码】

开源.NetCore通用工具库Xmtool使用连载 - 发送短信篇的更多相关文章

  1. 开源.NetCore通用工具库Xmtool使用连载 - 加密解密篇

    [Github源码] <上一篇>详细介绍了Xmtool工具库中的正则表达式类库,今天我们继续为大家介绍其中的加密解密类库. 在开发过程中我们经常会遇到需要对数据进行加密和解密的需求,例如密 ...

  2. 利用python库twilio来免费发送短信

    大家好,我是四毛,最近开通了个人公众号“用Python来编程”,欢迎大家“关注”,这样您就可以收到优质的文章了. 今天跟大家分享的主题是利用python库twilio来免费发送短信. 先放一张成品图 ...

  3. NetCore 阿里大于发送短信

    使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...

  4. Android软件开发之发送短信与系统短信库解析

    今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDM ...

  5. 使用python移动飞信模块发送短信

    作者:miaoo 1.应用场景 由于自己做的一个系统需要用到发送短信到自己手机的功能,于是搜索了一下,发现了一个通过移动飞信通道发送短信开源库:PyFetion PyFetion 模拟实现了飞信的通信 ...

  6. 用qpython3写一个最简单的发送短信的程序

    到目前为止并没有多少手机应用是用python开发的,不过qpython可以作为一个不错的玩具推荐给大家来玩. 写一个最简单的发送短信的程序,代码如下: #-*-coding:utf8;-*- #qpy ...

  7. android发送短信验证码并自动获取验证码填充文本框

    android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com) ...

  8. java 短信猫发送短信的方法

    用java实现短信收发的功能,目前一般项目中短信群发功能的实现方法大致有下面三种: ·                 1. 向运行商申请短信网关,不需要额外的设备,利用运行商提供的API调用程序发送 ...

  9. 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)

    微信时代的今天,短信一样不可缺席,大系统都有集成短信接口.若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说, ...

  10. 用qpython3写一个发送短信的程序

    用qpython3写一个最简单的发送短信的程序 用qpython3写一个最简单的发送短信的程序到目前为止并没有多少手机应用是用python开发的,不过qpython可以作为一个不错的玩具推荐给大家来玩 ...

随机推荐

  1. Keep English Level-01

    state -- 声称,宣称,国家,政府 state-owned -- 国有的 He stated that "hell will break loose,politically and m ...

  2. 【CubeMX】使用 CubeMX 生成对应的配置代码需要设置 “User Label”

    如要生成 SPI 的管脚配置代码,需要设置 User Label,这样工具才能知道应该配置什么,否则不会生成

  3. [转帖]Oracle Exadata X10M 数据库一体机发布,树立 OLTP 数据库性能新标杆

    https://www.modb.pro/db/653936 2023年6月25日消息,Oracle 公司继续以其专用的 Exadata 平台重新定义 OLTP 数据库性能.上周,该公司延续了这一传统 ...

  4. [转帖]如何使用coredump

    一.coredump 当用户态进程出现异常后,在该进程的执行目录下生成对应的coredump文件,如果我们想将coredump生成的位置做改变,就需要如下设置. echo "/home/co ...

  5. [转帖]TiDB BR 备份至 MinIO S3 实战

    https://tidb.net/blog/3a31d41d#3.%E9%83%A8%E7%BD%B2%20MinIO%20S3%20%E5%8F%8A%E5%A4%87%E4%BB%BD%E6%81 ...

  6. 【转帖】基于官方rpm包方式安装Oracle19c

    https://blog.whsir.com/post-5489.html   本文基于Centos7.x环境,通过官方提供的rpm包来安装19c 1.下载Oracle19c安装包 https://w ...

  7. [转帖]History of Web Browser Engines from 1990 until today

    https://eylenburg.github.io/browser_engines.htm Many tried, few remain... Last updated: January 2023 ...

  8. 京东云开发者|提高IT运维效率,深度解读京东云AIOps落地实践

    基于深度学习对运维时序指标进行异常检测,快速发现线上业务问题 时间序列的异常检测是实际应用中的一个关键问题,尤其是在 IT 行业.我们没有采用传统的基于阈值的方法来实现异常检测,而是通过深度学习提出了 ...

  9. 2024年最新的Python操控微信教程

    自从微信禁止网页版登陆之后,itchat 库实现的功能也就都不能用了,那现在 Python 还能操作微信吗?答案是:可以! 在Github上有一个项目叫<WeChatPYAPI>可以使用 ...

  10. NOI2023 游记

    不完全按时间顺序写.记录 NOI 的一些琐事. 从 XDFZ 坐大巴 5 个小时来到成七.第一眼看到的是一个放着 NOI 牌子的台阶,还有一个签名墙.好像在我们之前到的人不太多? 用中英双语签名(冷月 ...