用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