按照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. 如果发送一些短的,纯文字,没有数字,没有符号的,可以发送的。