C# 借助阿里大于平台发送短信

一、首先申请签名和模板

1.登陆阿里云官网,找到短信服务,开通以后进入管理控制台,找到签名管理,申请一个签名,如下图:


2.然后找到模板管理,申请一个模板,模板里都有格式内容介绍,申请好以后大概是这样:


3.签名名称和模板CODE等会代码中会用到,还有Access Key ID 和 Access Key Secret也要用到,Access Key在个人信息的下拉列表里可以找到,如下图:


二、下载.Net平台下的SDK

1.点击短信服务列表中的帮助文档


2.点击SDK下载,进入到SDK及DEMO下载页面,找到第4个[NET],点击即可下载。


3.将下载好的压缩包进行解压,找到msgdemo目录,在/msgdemo/alicom-mns-receive有发送短信的demo和dll文件

三、发短信的具体实现

1.将/msg_demo/alicom-mns-receive/dll目录下的4个dll文件拷贝到你的项目目录下

2.在你项目的引用右键添加引用,打开引用管理器,如图:


3.点击浏览,将阿里大于依赖的4个dll文件添加进来,然后点击确定。


4.将/msg_demo/alicom-mns-receive下的sendsms文件拷贝到你的项目中,将其中Access Key ID 、 Access Key Secret、签名名称、模板CODE替换成你自己的即可,还有接收短信的手机号,模板内容等,可以将main函数改成一个方法sendMsg(string phone,string code),直接调用方法即可,参数改为接收短信的手机号和短信内容:

namespace ConsoleApplication1
{
class sendsms
{
    static String product = "Dysmsapi";//短信API产品名称
    static String domain = "dysmsapi.aliyuncs.com";//短信API产品域名
    static String accessId = "你的Key";
    static String accessSecret = "你的Secret";
    static String regionIdForPop = "cn-hangzhou";
   public  static void sendMsg(string phone,string code)
    {


        IClientProfile profile = DefaultProfile.GetProfile(regionIdForPop, accessId, accessSecret);
        DefaultProfile.AddEndpoint(regionIdForPop, regionIdForPop, product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);
        SendSmsRequest request = new SendSmsRequest();
        try
        {
            //request.SignName = "上云预发测试";//"管理控制台中配置的短信签名(状态必须是验证通过)"
            //request.TemplateCode = "SMS_71130001";//管理控制台中配置的审核通过的短信模板的模板CODE(状态必须是验证通过)"
            //request.RecNum = "13567939485";//"接收号码,多个号码可以逗号分隔"
            //request.ParamString = "{\"name\":\"123\"}";//短信模板中的变量;数字需要转换为字符串;个人用户每个变量长度必须小于15个字符。"
            //SingleSendSmsResponse httpResponse = client.GetAcsResponse(request);
            request.PhoneNumbers = phone;//接收短信的手机号
            request.SignName = "签名名称";
            request.TemplateCode = "模板CODE";
            request.TemplateParam = "{\"code\":\"" + code + "\"}";//模板内容
           // request.OutId = "xxxxxxxx";  //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
            //请求失败这里会抛ClientException异常
            SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
            System.Console.WriteLine(sendSmsResponse.Message);

        }
        catch (ServerException e)
        {
            System.Console.WriteLine("ServerException");
        }
        catch (ClientException e)
        {
            System.Console.WriteLine("ClientException");
        }
    }
}
}

5.运行程序,调用发送短信方法进行测试,测试成功!

更多博客内容详见我的博客 Wang's Blog

猜你喜欢

转载自blog.csdn.net/abcwanglinyong/article/details/80363901