asp.net 实现短信群发功能

时间:2021-10-28 18:17:46
先说下需求,比如会员注册成功后填写了手机号码,网站要在固定时间以短信的形式,发送给会员一些网站上的信息。

谁能给说下思路要是有例子就更好了 谢谢!!!

17 个解决方案

#1


购买短信服务、sp商之类。很多有相关语言程序的配套使用

#2


恩,人家就有固定短信群发的功能的

#3


现在这种东西有没有免费的?

#4


要用人家的接口服务程序 或者用短信猫之类的,应该没有免费的吧  

#5


引用 4 楼 lchy110 的回复:
要用人家的接口服务程序 或者用短信猫之类的,应该没有免费的吧
++

#6


该回复于2011-04-11 14:08:26被版主删除

#7


都是收费的 呵呵 有的按月收 有的按条收 而且你这个的话写一个扫描程序就OK了

#8


没免费的,要花钱的.购买设备

#9


这是调用短信借口的类 ,供你参考。

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/*--------------------------------------------------------
 * Copyright (C) 2009 DrCh 
 * 版权所有:DrCh
 * 
 * 类文件名:LinkSms.cs
 * 代码编者:Dragon Chen
 * 编写日期:2009-10-15
 * 功能描述:Link Sms operation class
 * 
 * 创建标识:DrCh_LinkSms_DragonChen_20090612
 * 创建时间:2009-10-15 20:00
 * 创建描述:Management Link Sms operation in platform
 * 参考文档:
 * 
 * 修改标识:DrCh_LinkSms_DragonChen_20091015
 * 修改时间:2009-10-15 20:00
 * 修改描述:初次创建
 * 参考文档:DrCh_LinkSms_DragonChen_20091015
 * 
 * ------------------------------------------------------*/

/// <summary>
///eMay_Sms 的摘要说明
/// </summary>
public class eMay_Sms
{
    eMay_SJDX.SDKService objSms = new eMay_SJDX.SDKService();

    public eMay_Sms()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }

    #region Get Serial No information   -- ?
    /// <summary>
    /// Get Serial No information
    /// </summary>
    private string GetSerialNo()
    {
        string strSerialNo = "";

        return strSerialNo;
    }
    #endregion //Get Serial No information

    #region Get Password information   -- ?
    /// <summary>
    /// Get Password information
    /// </summary>
    private string GetPassword()
    {
        string strPassword = "";

        return strPassword;
    }
    #endregion //Get Password information

    #region Regist Serial No when first user Serial No
    /// <summary>
    /// 注册序列号:如果是第一次使用某序列号,必须强制调用该方法
    /// </summary>
    /// <returns>结果: 0:成功;10:失败,失败原因序列号或密码错误</returns>
    private int RegistPassword()
    {
        int intResult = 0;

        string strSerialNo = GetSerialNo();
        string strPassword = GetPassword();

        intResult = objSms.registEx(strSerialNo, strPassword, strPassword);

        return intResult;
    }
    #endregion //Regist Serial No when first used Serial No

    #region Sent SMS infroamtion
    /// <summary>
    /// Sent SMS infroamtion
    /// </summary>
    /// <param name="SentTime">定时时间:格式为年年年年月月日日时时分分秒秒,例如:20090504111010 代表2009年5月4日 11时10分10秒;如果立即发送可以为空</param>
    /// <param name="Mobiles">手机号码:为手机号码数组,单发数组长度为1,群发数组最大长度为200手机号码</param>
    /// <param name="SmsContent">短信内容:最大长度为500字(不区分汉字与英文),亿美短信平台会根据实际通道自动拆分</param>
    /// <param name="SmsPriority">短信等级:范围1~5,数值越高优先级越高</param>
    /// <returns>0成功,失败返回17,原因:序列号或密码错误或手机号错误。数据不能为NULL </returns>
    public int SentSMS(string SentTime, string[] Mobiles, string SmsContent, int SmsPriority)
    {
        int intResult;
        string[] strPhoneNo = { "13918799681", "18917310121" };
        //string[] strPhoneNo = { "18917310121" };

        string strSerialNo = GetSerialNo();
        string strPassword = GetPassword();
        // 附加码:默认必须为空,即 ""
        string strAddSerial = "";
        //字符编码:默认为"GBK"
        string strInfoType = "GBK";

        intResult = objSms.sendSMS(strSerialNo, strPassword, SentTime, Mobiles, SmsContent, strAddSerial, strInfoType, SmsPriority);

        return intResult;
    }
    #endregion //Sent SMS infroamtion

    #region Regist Company Infromation when first used Serial No
    /// <summary>
    /// 注册企业信息:如果是第一次使用某序列号,必须强制调用改方法
    /// </summary>
    /// <param name="CompanyName">企业名称</param>
    /// <param name="Connector">联系人</param>
    /// <param name="PhoneNo">联系电话</param>
    /// <param name="Mobile">联系手机</param>
    /// <param name="Email">电子邮件</param>
    /// <param name="Fax">传真</param>
    /// <param name="Address">企业地址</param>
    /// <param name="Postcode">邮政编码</param>
    /// <returns>结果: 0:成功; 11:失败(序列号或密码错误)</returns>
    private int RegistCompany(string CompanyName, string Connector, string PhoneNo, string Mobile, string Email, string Fax, string Address, string Postcode)
    {
        int intResult = 0;

        string strSerialNo = GetSerialNo();
        string strPassword = GetPassword();

        intResult = objSms.registDetailInfo(strSerialNo, strPassword, CompanyName, Connector, PhoneNo, Mobile, Email, Fax, Address, Postcode);

        return intResult;
    }
    #endregion //Regist Company Infromation when first used Serial No

    #region User menu for this Class
    //http://sdkhttp.eucp.b2m.cn/sdk/SDKService?wsdl
    #endregion //User menu for this Class
}


#10


1)首先你的有个发短信的平台,要么你有个设备,要么租用别人的平台。
2)定时发送,只需要定时器就可以了

#11


要有设备不是吗...

#12


没有免费的午餐啊,都是要钱的
提供商会有相应的接口说明

#13


该回复于2011-04-11 14:30:40被版主删除

#14


有一个发送短信的借口 (需要RMB)

里面有参数实现定时发送,群发的功能

#15


这个貌似要买个短信包。然后他会给你demo的。然后调用就可以了

#16


电信的短信接口。

#17


该回复于2011-04-11 15:44:14被版主删除

#1


购买短信服务、sp商之类。很多有相关语言程序的配套使用

#2


恩,人家就有固定短信群发的功能的

#3


现在这种东西有没有免费的?

#4


要用人家的接口服务程序 或者用短信猫之类的,应该没有免费的吧  

#5


引用 4 楼 lchy110 的回复:
要用人家的接口服务程序 或者用短信猫之类的,应该没有免费的吧
++

#6


该回复于2011-04-11 14:08:26被版主删除

#7


都是收费的 呵呵 有的按月收 有的按条收 而且你这个的话写一个扫描程序就OK了

#8


没免费的,要花钱的.购买设备

#9


这是调用短信借口的类 ,供你参考。

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/*--------------------------------------------------------
 * Copyright (C) 2009 DrCh 
 * 版权所有:DrCh
 * 
 * 类文件名:LinkSms.cs
 * 代码编者:Dragon Chen
 * 编写日期:2009-10-15
 * 功能描述:Link Sms operation class
 * 
 * 创建标识:DrCh_LinkSms_DragonChen_20090612
 * 创建时间:2009-10-15 20:00
 * 创建描述:Management Link Sms operation in platform
 * 参考文档:
 * 
 * 修改标识:DrCh_LinkSms_DragonChen_20091015
 * 修改时间:2009-10-15 20:00
 * 修改描述:初次创建
 * 参考文档:DrCh_LinkSms_DragonChen_20091015
 * 
 * ------------------------------------------------------*/

/// <summary>
///eMay_Sms 的摘要说明
/// </summary>
public class eMay_Sms
{
    eMay_SJDX.SDKService objSms = new eMay_SJDX.SDKService();

    public eMay_Sms()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }

    #region Get Serial No information   -- ?
    /// <summary>
    /// Get Serial No information
    /// </summary>
    private string GetSerialNo()
    {
        string strSerialNo = "";

        return strSerialNo;
    }
    #endregion //Get Serial No information

    #region Get Password information   -- ?
    /// <summary>
    /// Get Password information
    /// </summary>
    private string GetPassword()
    {
        string strPassword = "";

        return strPassword;
    }
    #endregion //Get Password information

    #region Regist Serial No when first user Serial No
    /// <summary>
    /// 注册序列号:如果是第一次使用某序列号,必须强制调用该方法
    /// </summary>
    /// <returns>结果: 0:成功;10:失败,失败原因序列号或密码错误</returns>
    private int RegistPassword()
    {
        int intResult = 0;

        string strSerialNo = GetSerialNo();
        string strPassword = GetPassword();

        intResult = objSms.registEx(strSerialNo, strPassword, strPassword);

        return intResult;
    }
    #endregion //Regist Serial No when first used Serial No

    #region Sent SMS infroamtion
    /// <summary>
    /// Sent SMS infroamtion
    /// </summary>
    /// <param name="SentTime">定时时间:格式为年年年年月月日日时时分分秒秒,例如:20090504111010 代表2009年5月4日 11时10分10秒;如果立即发送可以为空</param>
    /// <param name="Mobiles">手机号码:为手机号码数组,单发数组长度为1,群发数组最大长度为200手机号码</param>
    /// <param name="SmsContent">短信内容:最大长度为500字(不区分汉字与英文),亿美短信平台会根据实际通道自动拆分</param>
    /// <param name="SmsPriority">短信等级:范围1~5,数值越高优先级越高</param>
    /// <returns>0成功,失败返回17,原因:序列号或密码错误或手机号错误。数据不能为NULL </returns>
    public int SentSMS(string SentTime, string[] Mobiles, string SmsContent, int SmsPriority)
    {
        int intResult;
        string[] strPhoneNo = { "13918799681", "18917310121" };
        //string[] strPhoneNo = { "18917310121" };

        string strSerialNo = GetSerialNo();
        string strPassword = GetPassword();
        // 附加码:默认必须为空,即 ""
        string strAddSerial = "";
        //字符编码:默认为"GBK"
        string strInfoType = "GBK";

        intResult = objSms.sendSMS(strSerialNo, strPassword, SentTime, Mobiles, SmsContent, strAddSerial, strInfoType, SmsPriority);

        return intResult;
    }
    #endregion //Sent SMS infroamtion

    #region Regist Company Infromation when first used Serial No
    /// <summary>
    /// 注册企业信息:如果是第一次使用某序列号,必须强制调用改方法
    /// </summary>
    /// <param name="CompanyName">企业名称</param>
    /// <param name="Connector">联系人</param>
    /// <param name="PhoneNo">联系电话</param>
    /// <param name="Mobile">联系手机</param>
    /// <param name="Email">电子邮件</param>
    /// <param name="Fax">传真</param>
    /// <param name="Address">企业地址</param>
    /// <param name="Postcode">邮政编码</param>
    /// <returns>结果: 0:成功; 11:失败(序列号或密码错误)</returns>
    private int RegistCompany(string CompanyName, string Connector, string PhoneNo, string Mobile, string Email, string Fax, string Address, string Postcode)
    {
        int intResult = 0;

        string strSerialNo = GetSerialNo();
        string strPassword = GetPassword();

        intResult = objSms.registDetailInfo(strSerialNo, strPassword, CompanyName, Connector, PhoneNo, Mobile, Email, Fax, Address, Postcode);

        return intResult;
    }
    #endregion //Regist Company Infromation when first used Serial No

    #region User menu for this Class
    //http://sdkhttp.eucp.b2m.cn/sdk/SDKService?wsdl
    #endregion //User menu for this Class
}


#10


1)首先你的有个发短信的平台,要么你有个设备,要么租用别人的平台。
2)定时发送,只需要定时器就可以了

#11


要有设备不是吗...

#12


没有免费的午餐啊,都是要钱的
提供商会有相应的接口说明

#13


该回复于2011-04-11 14:30:40被版主删除

#14


有一个发送短信的借口 (需要RMB)

里面有参数实现定时发送,群发的功能

#15


这个貌似要买个短信包。然后他会给你demo的。然后调用就可以了

#16


电信的短信接口。

#17


该回复于2011-04-11 15:44:14被版主删除