Magicodes.Sms短信库的封装和集成

简介

Magicodes.Sms是心莱团队封装的短信服务库,已提供Abp模块的封装。

Nuget

新的包

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

开始使用

如果使用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集成

配置

复制代码
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();
    }
复制代码
posted @   雪雁  阅读(609)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2018-12-11 开源库支付库Magicodes.Pay发布
点击右上角即可分享
微信分享提示