用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不能是窗体级的
你这个应用比较小,买个短信猫,本身带开发包,看看就知道了,简单