xin-lai / Magicodes.Sms

短信消息

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Magicodes.Sms

简介

  短信服务核心库,已提供Abp模块的封装。

  已更新为.NET标准库,支持.NET Core。已编写单元测试,可以自行配置。

Nuget

新的包

名称 说明 Nuget
Magicodes.Sms.Aliyun 阿里云短信库 NuGet
Magicodes.Sms.Core 短信核心库 NuGet
Magicodes.Sms.Aliyun.Abp 阿里云短信Abp模块 NuGet

Magicodes Nuget包推荐

相关Nuget包

名称 说明 Nuget GitHUb
Magicodes.IE.Excel Excel导入导出 NuGet dotnetcore/Magicodes.IE
Magicodes.IE.Core 导入导出核心库 NuGet dotnetcore/Magicodes.IE
Magicodes.IE.HTML HTML导入导出 NuGet dotnetcore/Magicodes.IE
Magicodes.IE.Pdf Pdf导出 NuGet dotnetcore/Magicodes.IE
Magicodes.IE.Word Word导出 NuGet dotnetcore/Magicodes.IE
Magicodes.IE.Csv Csv导入导出 NuGet dotnetcore/Magicodes.IE
Magicodes.WeChat.MiniProgram 小程序SDK NuGet Magicodes.WxMiniProgram.Sdk
Magicodes.Sms.Aliyun 阿里云短信 NuGet xin-lai/Magicodes.Sms
Magicodes.Sms.Core 短信核心库 NuGet xin-lai/Magicodes.Sms
Magicodes.Sms.Aliyun.Abp 阿里云短信Abp模块 NuGet xin-lai/Magicodes.Sms
Magicodes.Storage.Core 通用存储核心库 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.AliyunOss.Core 阿里云OSS存储 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.Local.Core 本地存储 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.Tencent.Core 腾讯云存储 NuGet xin-lai/Magicodes.Storage
Magicodes.Storage.Abp.Core 通用存储ABP模块集成 NuGet xin-lai/Magicodes.Storage
Magicodes.WeChat.SDK.Core 微信SDK NuGet xin-lai/Magicodes.WeChat.SDK
Magicodes.SwaggerUI SwaggerUI API快速配置和分组 NuGet xin-lai/Magicodes.SwaggerUI
Magicodes.Pay.Alipay 支付宝支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Notify 支付通用回调库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Wxpay 微信支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Alipay.Global 国际支付宝支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Allinpay 通联支付库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Abp ABP 支付通用封装库 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Abp.Allinpay ABP 通联支付模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Abp.Wxpay ABP 微信支付模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Alipay.Global ABP 国际支付宝模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Pay.Alipay ABP 支付宝模块 NuGet xin-lai/Magicodes.Pay
Magicodes.Abp.Castle.NLog ABP Nlog支持模块 NuGet xin-lai/Abp.Castle.NLog
Magicodes.WxMiniProgram.Sdk 微信小程序SDK NuGet xin-lai/Magicodes.WxMiniProgram.Sdk
Magicodes.WxMiniProgram.Sdk.Abp 微信小程序SDK Abp模块 NuGet xin-lai/Magicodes.WxMiniProgram.Sdk
Magicodes.Dingtalk.SDK 钉钉SDK NuGet xin-lai/Magicodes.Dingtalk.SDK
Magicodes.DynamicSqlApi.Core 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.All 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.CsScript 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.Dapper 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi
Magicodes.DynamicSqlApi.SqlServer 根据SQL自动解析生成动态API NuGet Magicodes.DynamicSqlApi

开始使用

如果使用Abp相关模块,则使用起来比较简单,具体您可以参考相关单元测试的编写。主要有以下步骤:

  1. 引用对应的Nuget包 如:
名称 说明 Nuget
Magicodes.Sms.Aliyun.Abp 阿里云短信Abp模块 NuGet
  1. 添加模块依赖 在对应工程的Abp的模块(AbpModule)中,添加对“AliyunSmsModule”的依赖,如:
    [DependsOn(typeof(AliyunSmsModule))]
  1. 配置

默认支持两种配置方式,配置文件和SettingManager。下面以配置文件为例,格式为:

{
  "AliyunSmsSettings": {
    "AccessKeyId": "",
    "AccessKeySecret": "",
    "SignName": "",
    "TemplateCode": ""
  } 
}
  1. 使用短信API

通过容器获得ISmsTemplateSender,然后调用发送方法即可。如单元测试中:

        private readonly ISmsTemplateSender _smsTemplateSender;

        public SmsTest()
        {
            this._smsTemplateSender = Resolve<ISmsTemplateSender>();
        }

        [Theory]
        [InlineData("1367197xxxx", "1234")]
        public async Task SendCodeAsync(string phone, string code)
        {
            await _smsTemplateSender.SmsService.SendCodeAsync(phone, code);
        }

注意

ABP Zero .NET Core 3.1版本并没有注入IConfiguration,如需使用,需要自行在启动类注入。例如:

services.AddSingleton<IConfiguration>(_appConfiguration);

非ABP集成

配置

        AliyunSmsBuilder.Create()
            //设置日志记录
            .WithLoggerAction((tag, message) =>
            {
                Console.WriteLine(string.Format("Tag:{0}\tMessage:{1}", tag, message));
            }).SetSettingsFunc(() =>
            {
                //TODO:请自行配置自己的配置
                //如果是一个项目多个配置,请使用key来获取相关配置
                return ConfigHelper.LoadConfig("aliyun_app");
            }).Build();

阿里云短信发送

    [Theory(DisplayName = "短信发送测试")]
    [InlineData("你的手机号码", "验证码")]
    public async Task SendCodeAsync_Test(string phone, string code)
    {
        var smsService = new AliyunSmsService();
        var result = await smsService.SendCodeAsync(phone, code);
        result.Success.ShouldBeTrue();
    }

官方订阅号

关注“麦扣聊技术”订阅号免费获取:

  • 最新文章、教程、文档
  • 视频教程
  • 基础版免费授权
  • 模板
  • 解决方案
  • 编程心得和理念

官方订阅号

相关QQ群

编程交流群<85318032>

产品交流群<897857351>

官方博客/文档站

其他开源库地址

About

短信消息

License:GNU General Public License v3.0


Languages

Language:C# 97.3%Language:Batchfile 2.7%