日期:2014-05-20  浏览次数:20898 次

用C#写一个固定短信发送服务
我在用C#写一个固定短信发送,对一个固定的号码在固定的时间发送固定的内容的服务,现在在写短信的时候碰到困难,如何写一个方法发送短信,急求!
------解决方案--------------------
定时发送固定短信大致两种思路:
1、将短信发送方法封装在windows服务中,通过windows服务实现定时发送固定短信。
2、客户端填写短信内容、接收号码、执行发送的时间等,提交至数据库。
数据库执行定时轮询或作业,查询待发送短信表,执行短信发送。


短信发送有卡发送和网关发送等几种方式。

卡发送最有代表性的就是短信猫,短信猫的发送原理和手机发送的原理是一样的,
通过手机SM卡发送短信,只不过是短信猫可以插N张SM卡,就能实现批量群发短信。


楼主说的短信发送应该是指网关发送,网关发送一般不需要硬件支持,配置好服务器的网关参数,
调用发送方法就行了,发送方法服务商会提供的,一般都会给你各种语言的实例或开发包。


因为网关短信发送需要短信服务商支持,所以要事先购买或经过授权之后才能使用短信发送服务。

网关参数包括:短信服务器IP、端口、用户名、密码等。

(用户名、密码是指购买短信发送服务时、服务商提供给你的用户名、密码,用于访问服务器时的身份认证)

下面附我写的一个短信发送的webservice服务,(电信网关接口,需一个dll库支持,dll库是短信服务商提供的)




        #region 执行短信发送

        /// <summary>
        /// 执行短信发送
        /// </summary>
        /// <param name="ReceiverNumber">接收号码</param>
        /// <param name="Content">短信内容</param>
        /// <returns></returns>
        public string SendSMS(string ReceiverNumber, string Content)
        {
            
      //短信服务器网关参数类
      //因为参数是固定的,所以把网关参数保存在数据库中,方便使用。
              serverParameters = ServerParameters_Manager.GetAllParameters();//查询所有网关参数(返回对象)

//短信服务器状态(是否开启短信服务)
               if (serverParameters.ServerStatus == true)
               {
            //连接短信中心服务器(因连接方法涉及公司真实项目,故不能提供连接方法,望谅解!)
                    if (ConnectionServer("send", serverParameters.ServerLoginName, serverParameters.ServerLoginPwd,
serverParameters.SenderNumber, serverParameters.ServerIp, serverParameters.ServerPort,
serverParameters.SendType, ReceiverNumber, Content) == "1")
                    {
                      return "0";//发送成功
                    }
                    else
                    {
                       return strReturnCode.ToString();//短信服务器连接异常时会报错误代码,strReturnCode变量接收错误代码
                    }
               }
               else
               {
                 return "1";
               }
         }

        #endregion






短信发送时,调用发送方法执行短信发送。

------解决方案--------------------
服务中定时发送,用while死循环可以,但不可靠,使用timer,必须是system。timer不能是窗体级的

你这个应用比较小,买个短信猫,本身带开发包,看看就知道了,简单