就是用短信网关在线发短信的一个功能,页面代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MsgList.aspx.cs" Inherits="Scripts_Ms_SaleBill_MsgList" %><%@ Register Assembly="CHEN.XIN.Web.UI.Controls" Namespace="CHEN.XIN.Web.UI.Controls.Query" TagPrefix="cc5" %>
<%@ Register Assembly="CHEN.XIN.Controls" Namespace="CHEN.XIN.Controls.Calendar" TagPrefix="cc4" %>
<%@ Register Assembly="CHEN.XIN.Controls" Namespace="CHEN.XIN.Controls.MultiRef" TagPrefix="cc3" %>
<%@ Register Assembly="CHEN.XIN.Web.UI.Controls" Namespace="CHEN.XIN.Web.UI.Controls" TagPrefix="cc2" %>
<%@ Register Assembly="CHEN.XIN.Web.UI.Controls" Namespace="CHEN.XIN.Web.UI.Controls.ActionButton" TagPrefix="cc1" %>
<%@ Register Assembly="CHEN.XIN.Web.UI.Controls" Namespace="CHEN.XIN.Web.UI.Controls.PagingList" TagPrefix="cc8" %>
<%@ Register Assembly="CHEN.XIN.Web.UI.Controls" Namespace="CHEN.XIN.Web.UI.Controls.Query" TagPrefix="cc9" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>短信发送界面</title>
    <script src="../../javascript/PubRato.js"></script>
    <script language="javascript" src="Msg.js"></script>
</head>
<body>
    <form id="form1" runat="server">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center"><asp:Label ID="lblTitle" runat="server" Text="短信发送界面" SkinID="FormTitle"></asp:Label></td>
</tr>
<tr>
<td align="right">
    <input type="button" id="BtnSend" onclick="javascript:MsgOpen();" value=" 发 送 " class="BS_Button" />
<cc1:ButtonClose ID="btnClose" runat="server"></cc1:ButtonClose>
</td>
</tr>
<tr>
<td><br />
<table border="0" cellpadding="1" cellspacing="1" width="100%" class="PF_Table">
<tr>
<td>客户名称</td>
<td  colspan="3"><cc2:TextBox ID="CusName" runat="server" IsReadOnly="True"></cc2:TextBox></td>
<td>客户手机*</td>
<td><cc2:TextBox ID="Tel" runat="server"  onchange="javascript:GetCount();"></cc2:TextBox>&nbsp;&nbsp;<input type="button" id="btnCus" onclick="javascript:SaveCus();" value="更改手机" class="BS_Button" style="height:20px" /></td>
</tr>
<tr>
<td>短信内容*</td>
<td colspan="5"><cc2:TextBox ID="Memo" runat="server" TextMode="MultiLine" Rows="5" Width="96%" onchange="javascript:GetCount();"></cc2:TextBox></td>
</tr>
</table>
</td>
</tr>
</table>
<cc2:HiddenField ID="SendCode" runat="server" />
<cc2:HiddenField ID="TransCom" runat="server" />
<cc2:HiddenField ID="TotalMoney" runat="server" />
<cc2:HiddenField ID="MakerID" runat="server" />
<cc2:HiddenField ID="CusCode" runat="server" />
<cc2:HiddenField ID="SaleBillID" runat="server" />
<cc1:ActionLoadPage ID="loadPage" runat="server" Sql="Ms_SpSaleBillInfo" UrlDataType="string"></cc1:ActionLoadPage>
<font size="2">总字数/短信数:<input type="text" id="StringCount" value="0/0" runat="server" class="BS_TextBox" readonly>(移动联通70字/条,小灵通58字/条)</font>
</form>
</body>
</html>
<script language="Javascript">
    ///发送消息
    function MsgOpen()
    {
        ///校验数据
        if(IsBlank(document.all.Tel.value))
        {
        alert("客户手机必须填写!");
        return;
    }
    
    if(IsBlank(document.all.Memo.value))
        {
        alert("短信内容必须填写!");
        return;
    }
    
    var Tel = document.all.Tel.value;
        if(Tel.length != 11 && Tel.length != 8)
        {
        alert("客户手机不符合实际!");
        return;
    }
    
     var strArray = GetArray();
     var k = 0;
     for(var i=0; i<strArray.length; i++)
     {
            var strTemp = strArray[i];         ///组合字符
        var strSql = "http://www.imsms.net/smssoft/yixintong/adsend.asp?";
        strSql = strSql + "userid=" + TransData("Xml.Aspx?Type=1");
        strSql = strSql + "&passwd="  + TransData("Xml.Aspx?Type=2");
        strSql = strSql + "&tel=" + Tel;
        strSql = strSql + "&msg=" + strTemp;
        
            ///处理返回值
            var result = TransData(strSql);
            if(result==2)
            {
                alert("号码和内容问题,请检查号码格式是否正确,内容是否为空!");
                return;
            }
            else if(result==3)
            {
                alert("密码帐号错误!");
                return;
            }
            else if(result==4)
            {
                alert("余额不足!");
                return;
            }
            else
            {
                DataSave(strTemp);
                result = result.split('|')[1];
                k = k + 1;
                alert("第" + k + "条短信发送成功(还剩余" + result + "点)!");
            }
        }
    }
    
    //将短信设置为数组
    function GetArray()
    {
        var strCount = 70;
        var Tel = document.all.Tel.value;
        if(Tel.length != 11)
            strCount = 58;
     var strString = document.all.Memo.value;
    
        var my_array = new Array();
        var i = 0;
        while (strString.length > 0)
     {
            var strTemp = strString.substring(0,strCount);
        my_array[i] = strTemp
            strString = strString.substring(strTemp.length,strString.length);
            i = i +1;
        }
        
        return my_array;
    }
    
    ///保存数据
    function DataSave(strMemo)
    {
        var MsgText = strMemo;
        var MsgCount = 1;
        var MakerID = document.all.MakerID.value;
        var Tel = document.all.Tel.value;
        var BillID = document.all.SaleBillID.value;
        var strString = "MsgText=" + MsgText + "&MsgCount=" + MsgCount + "&MakerID=" + MakerID + "&Tel=" + Tel + "&BillID=" + BillID;
        var result = TransData("Xml.Aspx?Type=3&" + strString);
    }
    //修改手机
    function SaveCus()
    {
        var strCusCode = document.all.CusCode.value;
        var strTel = document.all.Tel.value;
        var strString = "CusCode=" + strCusCode + "&Tel=" + strTel;
        var result = TransData("Xml.Aspx?Type=4&" + strString);
        if(result==CusCode)
        {
            alert("客户手机更改成功!");
        }
        else
        {
            alert("客户手机更改失败!");
        }
    }
    ///通过Xml传输
    function TransData(strUrl)
    {
        var objXMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
        objXMLHTTP.Open("POST",strUrl , false);
        objXMLHTTP.setRequestHeader("Content-Type","text/xml; charset=gb2312"); 
        objXMLHTTP.send("");
        var result = objXMLHTTP.responseText;
        return result;
    }
    ///初始消息内容
    function init()
    {
        var mydate=new Date();
        var strDate = mydate.toLocaleString().split(" ")[0];
        
        document.all.Memo.value = "货运" + document.all.TransCom.value + ";货号" + document.all.SendCode.value +  ";发货日期" + strDate + ";金额" + document.all.TotalMoney.value + "元。请查收勿回(青岛世博)";
        GetCount();
    }
    ///获取字符数
    function GetCount()
    {
        //获取每条短信的字符长度
        var Tel = document.all.Tel.value;
        var strCount = 70;
        if(Tel.length != 11)
            strCount = 58;
    
        var result = document.all.Memo.value;//取得字符串
        var strTotal = result.length;//取得总长度
        
        var i = strTotal%strCount;//取得余数
        if(i != 0)
            var strCount = Math.floor(strTotal/strCount) + 1 ;
        else
            var strCount = strTotal/strCount;
        var strString = strTotal + "/" + strCount;
        document.all.StringCount.value = strString;
    }
    ///调用初始函数
    init();
</script>
    经测试,部分用户上述功能可以正常使用,但是有的机器在运行时却在执行下属代码段的objXMLHTTP.open 方法中提示“Premission Denied”的错误,发送短信的动作无法执行,看到论坛上有说可以设置IE安全选项的ActiveX属性,但是我都设置为“允许”了貌似还是不行,盼请各位高手指教!小弟不胜感激!   function TransData(strUrl)
    {
        var objXMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
        objXMLHTTP.Open("POST",strUrl , false);
        objXMLHTTP.setRequestHeader("Content-Type","text/xml; charset=gb2312"); 
        objXMLHTTP.send("");
        var result = objXMLHTTP.responseText;
        return result;
    }