1. 首先找到第三方发短信接口文档。

2.根据接口文档自己写个接口,调用他们发短信url , 可以先写个小demo.。

我这用的是 胜券短信 。

        /// <summary>/// 短信发送/// </summary>/// <param name="sms_phone">短信发送对象</param>/// <param name="sms_text">短信发送内容</param>/// <returns></returns>public static msgSendInfo SendSMS(string sms_phone, string sms_text){StringBuilder sms = new StringBuilder();//(模板发送)的只需要对sms_text、sms_phone进行base64加密if (sms_template == "1"){//加密手机号   用了base64加密后,要把特殊字符串替换(文档中没有详细写,记得看下人家的案例)sms_phone = GetToStr(EncryptionHelper.EncodeBase64(Encoding.UTF8, sms_phone));sms_text = GetToStr(EncryptionHelper.EncodeBase64(Encoding.UTF8, sms_text));}else{sms_text = GetToStr(EncryptionHelper.EncodeBase64(Encoding.UTF8, sms_text));}sms.AppendFormat("app_key={0}", app_key);// app_version为2表示需要加签名if (app_version == version){//需要加签名sms.AppendFormat("&sms_sign", sms_sign);}//这些都是参数,看你们怎么去定义,可以放在webconfig中sms.AppendFormat("&app_version={0}", app_version);sms.AppendFormat("&sms_phone={0}", sms_phone);sms.AppendFormat("&sms_text={0}", sms_text);sms.AppendFormat("&sms_sub_account_id={0}", sms_sub_account_id);sms.AppendFormat("&sms_priority={0}", sms_priority);sms.AppendFormat("&sms_flag={0}", flag);sms.AppendFormat("&sms_template={0}", sms_template);sms.AppendFormat("&sms_timersend_time={0}", sms_timersend_time);sms.AppendFormat("&sms_isreplay={0}", sms_isreplay);sms.AppendFormat("&sms_isrepeat={0}", sms_isrepeat);//应用签名(产生方式:将所有参数升序排序,然后将参数与内容相连,在前后加app_secret,将整个内容采用md5的方式加密)MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();byte[] app_sign = md5Hasher.ComputeHash(Encoding.Default.GetBytes(app_secret + sms.ToString() + app_secret));//byte[] app_sign = MD5(sms.ToString() + app_secret);var sb = new StringBuilder();foreach (var ch in app_sign){sb.Append(string.Format("{0:X2}", ch));}sms.AppendFormat("&app_sign={0}", sb.ToString());string resp = SendMsgByHttp(url, sms.ToString(), Encoding.UTF8);msgSendInfo sendInfo = JsonConvert.DeserializeObject<msgSendInfo>(resp);return sendInfo;}
  public static class restMgs{public static string GetToStr(string sStr){return sStr.Replace("%", " %25").Replace("+", "%2B").Replace("/", "%2F").Replace("?", "%3F").Replace("#", "%23").Replace("&", "%26");}public static string StrToHex(string mStr) //返回处理后的十六进制字符串{return BitConverter.ToString(ASCIIEncoding.Default.GetBytes(mStr)).Replace("-", " ");}public static string HexToStr(string mHex) // 返回十六进制代表的字符串{mHex = mHex.Replace(" ", "");if (mHex.Length <= 0) return "";byte[] vBytes = new byte[mHex.Length / 2];for (int i = 0; i < mHex.Length; i += 2)if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2]))vBytes[i / 2] = 0;return ASCIIEncoding.Default.GetString(vBytes);}public static string PushToWeb(string weburl, string data, Encoding encode){try{byte[] byteArray = encode.GetBytes(data);HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(weburl));webRequest.Method = "POST";webRequest.ContentType = "application/x-www-form-urlencoded";webRequest.ContentLength = byteArray.Length;Stream newStream = webRequest.GetRequestStream();newStream.Write(byteArray, 0, byteArray.Length);newStream.Close();//接收返回信息:HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();StreamReader aspx = new StreamReader(response.GetResponseStream(), encode);string msg = aspx.ReadToEnd();aspx.Close();response.Close();return msg;}catch (Exception ex){throw ex;}}/// <summary>/// Base64编码/// </summary>/// <param name="thisString"></param>/// <returns></returns>public static string ToBase64(string thisString){if (thisString == "")return string.Empty;return Convert.ToBase64String(Encoding.UTF8.GetBytes(thisString));}///   <summary>   ///   将指定字符串进行Base64编码。   ///   </summary>   ///   <param   name="codeType">GB2312</param>   ///   <param   name="code">具体html字符串</param>   ///   <returns></returns>   public static string EncodeBase64(string codeType, string code){string encode = "";byte[] bytes = Encoding.GetEncoding(codeType).GetBytes(code);encode = Convert.ToBase64String(bytes);return encode;}/// <summary>/// Base64加密,采用utf8编码方式加密/// </summary>/// <param name="source">待加密的明文</param>/// <returns>加密后的字符串</returns>public static string Base64Encode(string source){return Base64Encode(Encoding.UTF8, source);}/// <summary>/// Base64加密/// </summary>/// <param name="encodeType">加密采用的编码方式</param>/// <param name="source">待加密的明文</param>/// <returns></returns>public static string Base64Encode(Encoding encodeType, string source){string encode = string.Empty;byte[] bytes = encodeType.GetBytes(source);try{encode = Convert.ToBase64String(bytes);}catch{encode = source;}return encode;}/// <summary>/// Base64解密/// </summary>/// <param name="encodeType">解密采用的编码方式,注意和加密时采用的方式一致</param>/// <param name="result">待解密的密文</param>/// <returns>解密后的字符串</returns>public static string Base64Decode(Encoding encodeType, string result){string decode = string.Empty;byte[] bytes = Convert.FromBase64String(result);try{decode = encodeType.GetString(bytes);}catch{decode = result;}return decode;}}
    /// <summary>/// 短信发送返回的对象/// </summary>[Serializable]public class msgSendInfo{/// <summary>/// 返回true或者flase/// </summary>public bool success { get; set; }/// <summary>/// 发送结果编码号/// </summary>public int code { get; set; }/// <summary>/// 信息记录id/// </summary>public int messagelog_id { get; set; }/// <summary>/// 发送信息描述/// </summary>public string msg { get; set; }/// <summary>/// /// </summary>public int task_id { get; set; }}

这是发短信的流程,要是大家有什么好的思路可以告诉我。

1.要是对不同的内容进行群发,是如何?能不能把相同的参数进行封装。进行一次性对不同的手机号和内容发。

2.如何批量修改不相同的数据?

欢迎大家踊跃评论。

.net 发短信案例相关推荐

  1. 安卓day25快速入门 目录结构 清单 DDMS adb 危险权限 发短信 点击事件 安卓版本...

    一.排坑 AndroidStudio非法字符: '\ufeff' 将文件格式改为以UTF-8无BOM格式编码 Sublime Text 保存时 CodeFormatter file is scratc ...

  2. 使用Android Studio写一个发短信的小案例

    废话不多说,直接贴图 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayoutan ...

  3. Python的模块千奇百怪,居然有自动发短信的模块?

    今天跟大家分享的主题是利用python库twilio来免费发送短信. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的 ...

  4. 手把手教你如何在安卓平台上实现打电话发短信的功能

    首发地址 http://www.eoeandroid.com/thread-228079-1-1.html 1 案例目的 本案例通过一个简单通讯工具来巩固android的activity.Linear ...

  5. python 使用twilio进行发短信

    文章目录 1.说明: 2.开始注册账号: 1.官网:https://www.twilio.com/ 2.寻找python的使用案例demo 注意一点,我收到短信的手机号和我申请成功的手机号不是同一个, ...

  6. 教你怎么用Python,每天自动给女友免费发短信

    今天的教程就是教大家怎么发送免费短信给女朋友. 发送短信接口,我知道的常见的有两个平台,一个是 twilio,可以免费发短信 500 条,可发任意信息,一个是腾讯云,可以免费发短信 100 条,需要申 ...

  7. 免费发短信软件有黑幕

    免费发短信软件有黑幕 [案例导读] 把真相说出来,曾令我为难,因为我之前是在SP工作,即无线服务提供商,说白了就是 经常给大家的手机发一些乱七八糟的广告信息之类的商家.其中的黑幕大家未必了解-- [案 ...

  8. 阿里大鱼进行发短信业务---使用详细步骤-Java操作

    文章目录 前言 一.开通短信服务 二.快速学习 三.签名管理 1. 何为签名 2. 添加签名 四.模板管理 1. 何为模板 2. 添加模板 五.Java中使用阿里大鱼 1. 开发文档 2. 用到的依赖 ...

  9. 技术贴:如何跟刚认识的女孩发短信

    这篇文章挺有技术含量,虽然讲的是男女交往,但是其实还是人与人之间交往与处理关系. 对话,人与人之间最普通,但往往也是最有技巧的的交流方式.慢慢地说,迅速地思考,果断地决定去做. 编辑也来按一下:刚上大 ...

最新文章

  1. 数学图形之克莱因瓶(klein bottle)
  2. nssl1167-桐人的约会【最短路】
  3. java windows7 环境变量_Windows7环境变量中,系统变量与用户变量的优先级
  4. 去除小圆点_去除li小圆点以及解决其空格问题
  5. 【非常有用=小白也可以简单操作】越狱系统中可以让多个Kindle应用程序同时使用的办法--自己......
  6. 《Android游戏开发详解》一1.1 什么是编程
  7. c++通过pybind11制作模型python接口,生成python调用包
  8. 网易云课堂Java模拟面试笔记(31-40)
  9. kms服务器修改,kms服务器ip地址修改
  10. 【文印技巧】明明选了黑白打印,却印出了棕红色,怎么解决?
  11. Tautology (logic)介绍
  12. Python编程:通过百度文字识别提取表格数据
  13. Linux服务器开发,开源框架log4cpp和日志模块实现
  14. 百余款智能电视创意类应用参赛角逐 Top13 App新鲜出炉!
  15. Microsoft Edge 收藏夹如何显示在界面上方?
  16. Introduction to NMOS and PMOS Transistors
  17. 快捷指令,自动化脚本工具
  18. 搜索引擎涉及的数据结构
  19. 数据库之 MySQL—— 50个查询系列
  20. Coursera TensorFlow 基础课程-week1

热门文章

  1. Flutter 最佳扫码插件
  2. 关于计算优惠券金额的部分优化
  3. 【wireshark】如何获取一个设备的IP地址
  4. Dockerfile 定制 Rabbitmq 集成延时队列的镜像
  5. 雅加达(印度尼西亚)出差小记
  6. 计算机一级excel0分,探究计算机一级Word和Excel操作自动评分的实现
  7. 三点定位算法--用于平面2D定位
  8. 对称加密算法AES - ECB模式
  9. 多传感器融合标定方法汇总
  10. matlab中啥叫字符串,在matlab中( )用于括住字符串.