上篇文章实现了通过企业微信推送提醒,本篇主要讲如何通过阿里云发送短信。阿里云提供了成熟的sdk,本篇相对比较容易实现,且阿里云官方也提供了代码。

1. Nuget 下载AlibabaCloud.SDK.Dysmsapi20170525 。这个包是阿里官方提供的可以放心的下载。
2. 使用阿里云的短信之前,首先要在阿里云官方上获取到     AccessKeyId  和  AccessKeySecret 
3. 当然你必须首先要开通了阿里云的短信服务的。先申请签名服务,签名是你每次收到短信,都后以【签名】信息开头,可以使用公司名称简称作为申请,这样容国通过申请审核。
4. 签名审批后还需要申请模板,申请的模板可以添加变量形式,实现固定格式的短信提醒。
    比如我申请的模板及变量属性如下

您好! ${name} 同志,截止到${time}, 您${year}年${month}月党费还未缴纳 ,请及时缴纳党费。

    变量属性
    name-个人姓名;time-时间;year-时间;month-时间;

5. 审批通过后我们就可以调用代码来实现推送短息了。代码如下:

 public class MobileMsg
 {
     public static string AliKeyId;
     public static string AliKeySecret;

     public MobileMsg()
     { }

     public AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient()
     {
         AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
         {
             // 必填,您的 AccessKey ID
             AccessKeyId = " ",
             // 必填,您的 AccessKey Secret
             AccessKeySecret = " ",
         }; 
         config.Endpoint = "dysmsapi.aliyuncs.com";
         return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
     }

     public string sendMsg(string name, string time, int year, int month, string mobileNo)
     {
         JsonObject json = new JsonObject();
         json.Add("name", name);
         json.Add("time", time);
         json.Add("year", year);
         json.Add("month", month);
         AlibabaCloud.SDK.Dysmsapi20170525.Client client = this.CreateClient();
         AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
         {
             PhoneNumbers = mobileNo,  //接收的手机号码
             SignName = "",   //签名
             TemplateCode = "",   //模板的code
             TemplateParam = json.ToJsonString(),  //对应模板中变量组成的json字符串
         };
         AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
         try
         {
             // 复制代码运行请自行打印 API 的返回值
             client.SendSmsWithOptions(sendSmsRequest, runtime);
             return "ok";
         }
         catch (TeaException error)
         {
             // 错误 message
             Console.WriteLine(error.Message);
             // 诊断地址
             Console.WriteLine(error.Data["Recommend"]);
             return AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
         }
         catch (Exception _error)
         {
             TeaException error = new TeaException(new Dictionary<string, object>
             {
                 { "message", _error.Message }
             });
             // 错误 message
             Console.WriteLine(error.Message);
             // 诊断地址
             Console.WriteLine(error.Data["Recommend"]);
             return AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
         }
     }
 }

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐