为 Asp.net 网站新增发送手机短信功能

    本文旨在帮助那些为网站发送手机短信正在寻求解决方案还未最终找到解决方案的朋友提供参考。

    适合人群 须满足一下条件之一,如果以下3个条件您都不满足,为节约您宝贵的时间,请终止阅读本篇文章。

    条件如下:

         1.一条短信内容进行短信群发的目标手机数量不能太大,否则出现严重的短信延时。

         2.不想买短信猫之类的设备,同时又觉得部分国有电信单位提供的短信接口不好用,或者认为其服务不够好。

         3.担心网络上短信sp供应商信息不真实,毕竟大部分短信供应商不能通过当面交易。

   看到这里说明您对我的解决方案是感兴趣的,我这样解决的:

        找过几家国有企业短信sp供应商,效果比我想象的要差很多,于是直接在网络上找提供类似服务的短信供应商。发现有很多这样的民营sp短信供应商的服务都是通过网银或者支付宝进行购买。这又让我担心是骗钱的。说实在的挺苦恼的,甚至有朋友建议直接买个几百元的低端多普达,在windows mobile 内写一个自动发送短信的功能充当短信猫。后来苦苦寻觅中我发现了 悠逸企业短信平台(申明:无任何广告嫌疑!)可以购买一百元1000条手机短信而且注册后可以先试用10条短信。将10条试用完后,我用信用卡通过其网站购买了100元短信。心想如果被骗了,这样损失也不会很大。详细步骤如下:

       1.在其平台上注册一个属于自己的用户名。

       2.在我们的网站或者类库中加入这段方法 (注:此方法不是官方提供的,是我看完官方的API后用C#编写)

复制代码
    
    
1 public static bool SendMobileMsg( string msgContent, List < string > destListPhones) 2 { 3 try 4 { 5 bool result = false ; 6 string strPhones = string .Join( " ; " , destListPhones.ToArray()); 7 strPhones += " ; " ; 8 var encoding = System.Text.Encoding.GetEncoding( " GB2312 " ); 9 10 string postData = string .Format( " uid=用户名&pwd=密码&mobile={0};&msg={1}&dtime= " , strPhones, msgContent); 11 12 byte [] data = encoding.GetBytes(postData); 13 14 // 定义 WebRequest 15   HttpWebRequest myRequest = 16 (HttpWebRequest)WebRequest.Create( " http://www.smsadmin.cn/smsmarketing/wwwroot/api/post_send/ " ); 17 18 myRequest.Method = " POST " ; 19 myRequest.ContentType = " application/x-www-form-urlencoded " ; 20 myRequest.ContentLength = data.Length; 21 22 Stream newStream = myRequest.GetRequestStream(); 23 24 // 发送数据 25   newStream.Write(data, 0 , data.Length); 26 newStream.Close(); 27 28 // 得到 Response 29 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 30 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default); 31 string content = reader.ReadToEnd(); 32 33 if (content.Substring( 0 , 1 ) == " 0 " ) 34 result = true ; 35 else 36 { 37 if (content.Substring( 0 , 1 ) == " 2 " ) // 余额不足 38 { 39 // "手机短信余额不足"; 40 // TODO 41 } 42 else 43 { 44 //短信发送失败的 其他原因,请参看官方API 45 } 46 result = false ; 47 } 48 49 return result; 50 } 51 catch 52 { 53 return false ; 54 } 55 56 }
复制代码

很“干净”的调用,没有WebService也没有COM。

唯一要注意的就是编码用 GB2312 否则您收到短信的中文部分都是乱码,另外第10行的用户名和密码被硬编码了,应写在配置文件内。

最后,希望本篇能够帮助到您!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值