按照http://www.csdn.net/develop/article/26/26147.shtm的方法,我做了一程序。每天给自己发短信报告业务情况。其中关键部分代码如下:procedure TFrmMain.FormShow(Sender: TObject);
var
DMPROFIT,DMTOTAL,MMPROFIT,MMTOTAL:string;
begin
 qry1.Close;
 qry1.Parameters.ParamByName('DATEA').Value:=dtp1.DateTime;
 qry1.Parameters.ParamByName('DateB').Value:=dtp2.DateTime;
 qry1.Open;
 DMPROFIT:=formatfloat('0.00',qry1.FieldValues['mprofit']);
 DMTotal:=formatfloat('0.00',qry1.FieldValues['mtotalline']); dtp1.Date:=BOFM(dtp1.Date); qry1.Close;
 qry1.Parameters.ParamByName('DATEA').Value:=dtp1.DateTime;
 qry1.Parameters.ParamByName('DATEB').Value:=dtp2.DateTime;
 qry1.Open;
 MMprofit:=formatfloat('0.00',qry1.FieldValues['mprofit']);
 mmtotal:=formatfloat('0.00',qry1.FieldValues['mtotalline']); mmo1.text:=formatdatetime('M月D日',now())+'今天毛利:'+dmprofit+'销售:'+dmtotal+'本月毛利:'+mmprofit+'本月销售:'+mmtotal; sleep(10000);  mmo2.Text:= GetSMSWebServiceSoapPort.sendXml('sina','13960888888', '888888', '13960888888' , mmo1.Text,'Text');  sleep(10000);  tbl1.close;
  tbl1.Open;
  tbl1.Last;
  tbl1.Insert;
  tbl1.FieldByName('TEXT').Value:=mmo1.Text;
  tbl1.FieldByName('RE').Value:=mmo2.Text;
  tbl1.Post;  tbl1.Close;
  tbl1.Destroy;
  con2.Close;
  con2.Destroy;  qry1.Close;
  qry1.Destroy;
  con1.Close;
  con1.Destroy;  sleep(10000);  Application.Terminate;end;因为要做成自动发送,所以窗口一show出来就开始做事,做完直接 Terminate
现在问题是:我查看日志,发送的内容是:
6月9日今天毛利:15989.45销售:251923.65本月毛利:133358.14本月销售:1883780.17
返回的消息是:
<Response><Result><ToMobile>13960888888</ToMobile><RetCode>94</RetCode><ErrCause>Web Service</ErrCause><Message>您发送的短信中包含非法字符</Message></Result></Response>奇怪的是,上面那段文字,哪来什么“非法字符”呀?大侠们解释一下,或者有在新浪工作的,帮帮忙。看看是怎么回事。要怎么解决才行。P.S. 如果发送一些短的,纯文字,没有数字,没有符号的,可以发送的。

解决方案 »

  1.   

    如果没有语法错误(按照短信定义规则),则可能是网站对短信内容作了过滤,比如很多网站(包括csdn)不接收政治相关的、色情的字词。“毛利”中的“毛”值得注意!————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    如果没有语法错误(按照短信定义规则),则可能是网站对短信内容作了过滤,比如很多网站(包括csdn)不接收政治相关的、色情的字词。“毛利”中的“毛”值得注意!
    ---------------------------------------------------------------
    我当初也怀疑过毛利中的毛,后来改成了利润,结果一样错。
    用过新浪的网关,语法好像没问题
    可能不支持长短信~~
    ------------------------------------------------------------------
    那短信应该不长吧,长短信起码也得50个呀,一短信的可用字符数有70个呢。
    并且,奇怪的问题在于,有时能发,有时不能,有时出错,改天再发,好了,程序根本没有改动过。真是莫名其妙。而且,以上短信内容,在新浪的网页可以正常发送,一点问题都没有。神呀,救救我吧。
      

  3.   

    回复人: cjf1009(农民程序员) ( ) 信誉:97  2004-06-24 18:08:00  得分: 0  
     
     
       是不是新浪那里出毛病了?我的原来用的挺好的,可现在就不行了,老是出错。说什么“缺少所需的空白区”
      
     
    --------------------------------------------------------------------
    Request white space was missing???错误跟我的一样呀,看来不是只有我一个人错呀。