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

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

时间:2023-08-25 21:35:04浏览次数:53  
标签:短信 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********");

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

【Github源码】

标签:短信,NetCore,sms,自己,替换成,发送,开源,Xmtool,Config
From: https://blog.51cto.com/u_16229237/7235395

相关文章

  • .NetCore WebAPI 导入、导出Excel文件 导入
    先下载一个NuGet包 在接口写方法//导入[HttpPost][Route("Import")]publicIActionResultImportExcel()//IFormFileformFile{try{varformFile=HttpContext.Request.Form.Files[0];//......
  • 开源EDA软件,比如 iverilog ,用于本科生教学场景如何?
    文心一言:开源EDA软件如Iverilog可以用于本科生的教学场景。以下是一些优点:免费:开源EDA软件不需要任何许可费用,这使得它们在教学环境中更具有成本效益。灵活:开源EDA软件具有灵活的特性,可以根据不同的教学需求进行定制。教师可以根据课程的内容和要求来选择适合的软件......
  • 14.4K Star,一款外观漂亮、运行快速、动画细腻的开源免费UI组件库
    之前给大家推荐了很多后台模版,有读者希望推荐一些跟通用的好看组件,毕竟出了后台还有很多其他场景嘛。所以,今天继续给大家推荐一个广受好评的UI组件库:NextUI主要特性NextUI的主要目标是简化开发流程,为增强的用户体验提供美观且适应性强的系统设计。它有以下几点核心特性:可个......
  • Forrester首次面向中国的开源报告:阿里云在云原生领域开源布局最全面
    Forrester于近期发布了《NavigateTheCloud-NativeEcosystemInChina,2023》,报告概述了中国云原生领域的开源项目对构建云原生生态的促进作用,这些开源项目正深刻影响着企业的技术决策者以何种策略拥抱云原生这一现代IT基础设施的核心。报告表明,中国超过80%的云决策者表......
  • 盘点10个.NetCore实用的开源框架项目
    连续分享.Net开源项目快3个月了,今天我们一起梳理下10个,比较受到大家欢迎的.NetCore开源框架项目。更多开源项目,可以查看我创建的,.Net开源项目榜单!一个专注收集.Net开源项目的榜单​github.com/bianchenglequ/netcodetop1、FytSoaCms前后端分离CMS系统项目简介这是一个基于.N......
  • Microsoft.AspNetCore.Identity
    前言用户模块几乎是每个系统必备的基础功能,如果每次开发一个新项目时都要做个用户模块,确实非常无聊。好在asp.netcore给我们提供了Identity,使用起来也是比较方便,如果对用户这块需求不是非常个性化的话,identity是一个不错的选择。ASP.NETCoreIdentity:是一个API,它支持用......
  • 嵌入式开源库交叉编译整理
    本文将不定期更新,主要是整理统计遇到的开源库,交叉编译的方法。这里的交叉编译平台主要是ARM32的芯片平台。首先在交叉编译目录上一层创建文件夹,方便后续开源库的依赖和链接mkdir../rv1126这里我使用的是,rv1126的平台,因此创建了一个rv1126的目录。后续所有开源库的编译,输......
  • Mesa 23.2 开源图形栈现已可供下载
    作为Mesa23系列的第二个重要版本,Mesa23.2开源图形栈现已可供下载,它为AMDGPU的RADVVulkan驱动程序带来了新功能,改进了 Linux 游戏,并新增了Asahi功能。Mesa23.2的亮点包括Asahi上的OpenGL3.1和OpenGLES3.VK_KHR_ray_tracing_pipeline、VK_EXT_dept......
  • 开源的 .NET 数据库迁移框架FluentMigrator
    简介FluentMigrator是一个开源的数据库迁移框架,可以帮助用户在开发过程中保持数据库的一致性。它提供了一个简洁的FluentAPI,可以让你使用C#写出简洁的迁移脚本。FluentMigrator提供了一系列的API用来创建和管理数据库迁移,并且支持多种不同的数据库系统,包括MySQL、Postg......
  • 【python】python开源代理ip池
    一、前言随着互联网的不断发展,越来越多的应用需要使用高匿代理IP才能访问目标网站,而代理IP作为一种能够隐藏本机真实IP地址的工具,在网络抓取、搜索引擎排名、广告投放、反爬虫等方面有着广泛的应用场景。但是,由于代理IP的稳定性难以保证,而且容易被反爬虫机制识别和封杀,为解决这些......