首页 > 其他分享 >开源.NetCore通用工具库Xmtool使用连载 - 发送短信篇

开源.NetCore通用工具库Xmtool使用连载 - 发送短信篇

时间:2023-05-31 21:36:01浏览次数:47  
标签:短信 NetCore sms 自己 替换成 发送 开源 Xmtool Config

【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,sms,自己,替换成,发送,开源,Xmtool,Config
From: https://www.cnblogs.com/bcbr/p/17447376.html

相关文章

  • 2022 Kube-OVN开源社区年度报告
    感谢各位社区小伙伴陪伴Kube-OVN又走过了快速发展的一年,随着Kubernetes技术的广泛应用,CNI网络插件的使用率逐步攀升,Kube-OVN社区也在不断成长。让我们一起跟随这篇文章,走进Kube-OVN的2022。  产品功能持续优化 2022年,是Kube-OVN夯实基础、巩固优势的一年,完成了从1.10到1......
  • 可视化探索开源项目的 contributor 关系
    引语:作为国内外最大的代码托管平台,根据最新的GitHub数据,它拥有超372,000,000个仓库,其中有28,000,000是公开仓。分布式图数据库NebulaGraph便是其中之一,同其他开源项目一样,NebulaGrpah也有自己的contributor们,他们是何时,通过哪个pr与NebulaGraph产生联系的呢?本文......
  • 开源软件架构总结之——Bash(readline做输入交互式,词法语法分析,进程交互)
    第3章TheBourne-AgainShellBash的主要组件:输入处理,解析,单词展开(wordexpansion)和其他命令处理,管道(pipeline)中的命令执行。这些组件构成一个流水线(pipeline),从键盘或脚本中获取字符,然后逐步转化为命令。图3.1Bash组件结构 3.7.经验教训3.7.1.什么是重要的参与到Bash项目......
  • Netflix 开源持续交付平台 Spinnaker
    软件简介Spinnaker是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。Spinnaker主要特性:配置一次,随时运行;随地部署,集中化管理;开源。Spinnaker组件:Spinnaker最初是以实现内部的端到端持续交付为目标,作为 Asgard 的替代,该项目期望重建一个持续交付......
  • aspnetcore最最简单的接口权限认证
    五月一眨眼就过去,就当凑个数吧。场景:一个小小的项目,需要一个后台,就展示几个列表,连用户表、角色表等都不需要设计。之前有写过identityserver4和jwt4的demo(exercisebook/IdentityServer4&Serilogatmain·liuzhixin405/exercisebook·GitHubexercisebook/授权/授权一/Jw......
  • 开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    开源(OpenSource):开源是指公开软件的源代码。开源软件在发行的时候会附上软件的源代码,并授权允许用户更改、传播或者二次开发。软件的分类:商业:收费,源码不公开共享:免费,源码不公开自由:源码公开开源协议:世界上的开源许可证(OpenSourceLicense)大概有上百种,我们常用的开源软件......
  • 提高生产力的最佳免费开源终端:WindTerm
    哈喽,大家好!我是程序视点的小二哥!前言自从当上程序员以来使用频率最多的不是vscode,也不是github,而是终端!!!小师妹使用过很多的终端工具,什么Tabby,Putty,Wrap等等,最让小师妹用着顺心,看着舒心的莫过于WindTerm这一款了,最主要的是颜值高功能强,还能支持表情欧~WindTermWindTerm......
  • ByConity与主流开源OLAP引擎(Clickhouse、Doris、Presto)性能对比分析
    引言:随着数据量和数据复杂性的不断增加,越来越多的企业开始使用OLAP(联机分析处理)引擎来处理大规模数据并提供即时分析结果。在选择OLAP引擎时,性能是一个非常重要的因素。因此,本文将使用TPC-DS基准测试的99个查询语句来对比开源的ClickHouse、Doris、Presto以及ByConity这4个OLAP......
  • Falcon猎鹰:史上最强开源大语言模型
    号称“史上最强的开源大语言模型”出现了。它叫Falcon(猎鹰),参数400亿,在1万亿高质量token上进行了训练。最终性能超越650亿的LLaMA,以及MPT、Redpajama等现有所有开源模型。一举登顶HuggingFaceOpenLLM全球榜单:除了以上成绩,Falcon还可以只用到GPT-375%的训练预算,性能就显著......
  • 灵感生成器DreamGPT开源:见识一下真正的脑洞大开
    ChatGPT最为人诟病的缺陷就是「胡编乱造」了,可以一本正经地讲一段林黛玉倒拔垂杨柳的故事。  对于真正想了解「林黛玉」或「倒拔垂杨柳」的人来说,这段回答可以说是灾难级误导了,但对于专注于「虚构」和「创意」的从业者来说,天马行空幻觉反而可以激发创造力。 最近Diverge......