短信发送
# Smart之阿里短信发送
# 1. 说明
范例通过对接阿里短信平台,填写对应的短信模板以进行短信发送的功能。在使用该范例前,需开通阿里云短信服务 (opens new window),获取AccessKeyId、AccessKeySecret。并根据阿里云短信服务文档 (opens new window)进行短信模板的建立。
程序中的RFSmsSender需要配合TARS进行使用,在使用前需要对Smart进行帐套设置。
通过本实例的制作和学习,您可以掌握Smart智慧控制平台通过客户端以及TARS进行短信发送的功能。
# 2. 设计明细
开启Smart智慧控制平台,分别加入下插图之控件。或者通过点击菜单栏[文件]
-[打开项目]
选择范例项目文件来打开该范例。

①:TImage组件,控件名称为Image1
。
②:TBitBtn组件,控件名称为BitBtn1
。
③:TBitBtn组件,控件名称为BitBtn2
。
④:TRFSmsSender组件,控件名称为RFSmsSender1
。
⑤:TLabel组件,控件名称为Label1
。
⑥:TLabel组件,控件名称为Label2
。
⑦:TLabel组件,控件名称为Label3
。
⑧:TLabel组件,控件名称为Label4
。
⑨:TLabel组件,控件名称为Label5
。
⑩:TLabel组件,控件名称为Label6
。
(11):TLabel组件,控件名称为Label7
。
(12):TLabel组件,控件名称为Label8
。
(13):TEdit组件,控件名称为Edit1
。
(14):TEdit组件,控件名称为Edit2
。
(15):TEdit组件,控件名称为Edit3
。
(16):TEdit组件,控件名称为Edit4
。
(17):TEdit组件,控件名称为Edit5
。
(18):TEdit组件,控件名称为Edit6
。
(19):TComboBox组件,控件名称为ComboBox1
。
Main窗体属性设置
BorderStyle
:设置边界样式=bsDialog
。Caption
:设置窗体显示的标题=阿里短信发送
。ClientHeight
:设置客户区窗体的高度=332
。ClientWidth
:设置窗体客户区的宽度=754
。
①Image1属性设置
Align
:设置控件对齐方式=alClient
。Stretch
:设置图片拉伸适应于控件。Picture
:设置图片。点击Picture
属性右侧的[...]
按钮,打开文件上传界面,点击[Load...]
从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]
加载图片。
②BitBtn1属性设置
Caption
:设置按钮显示的文字内容=客户端发送短信
。Height
:设置控件高度=74
。Width
:设置控件宽度=267
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
③BitBtn2属性设置
Caption
:设置按钮显示的文字内容=TARS发送短信
。Height
:设置控件高度=74
。Width
:设置控件宽度=267
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
⑤Label1属性设置
Caption
:设置标签内容=短信配置参数
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
⑥Label2属性设置
Caption
:设置标签内容=AccessKeyID
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
⑦Label3属性设置
Caption
:设置标签内容=AccessKeySecret
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
⑧Label4属性设置
Caption
:设置标签内容=短信模板ID
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
⑨Label5属性设置
Caption
:设置标签内容=短信签名
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
⑩Label6属性设置
Caption
:设置标签内容=短信模板参数
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(11)Label7属性设置
Caption
:设置标签内容=接收手机号码
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(12)Label8属性设置
Caption
:设置标签内容=API厂商
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(13)Edit1属性设置
TextHint
:设置内容为空时的提示=阿里云获取AccessKeyID
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(14)Edit2属性设置
TextHint
:设置内容为空时的提示=阿里云获取AccessKeySecret
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(15)Edit3属性设置
Text
:设置编辑框中的内容,此处设置短信模板ID,例如SMS_171853089
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(16)Edit4属性设置
Text
:设置编辑框中的内容,设置签名,例如爱招飞
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(17)Edit5属性设置
Text
:设置编辑框中的内容,设置短息模板参数,例如{"code":"123"}
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(18)Edit6属性设置
TextHint
:设置内容为空时的提示=多个号码用分号";"隔开
。Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
(19)ComboBox1属性设置
Items
:设置选项,双击该属性或者点击该属性右侧的[...]
打开编辑器,输入对应的选项。
Font
:设置字体,双击该属性或者点击属性右侧的[...]
以打开字体设置界面。
ItemIndex
:设置选择项目的数值为1
。
# 3. 程序设计
# 3.1. 程序初始化设置
在程序启动时,配置控件连接到TARS。
constructor TMyHandler.Create(AOwner: TComponent);
begin
FThis :=TBaseForm(AOwner);
//必须进行短信组件的Connection绑定
FThis.RFSMSSender1.Connection := DM.DBConnection;
end;
2
3
4
5
6
# 3.2. 事件设置
- ②BitBtn1-OnClick事件
点击按钮,在客户端进行配置发送短信。
procedure TMyHandler.BitBtn1Click;
//客户端发送短信
var
SendSmsRequest: TSendSmsRequest;
begin
if FThis.Edit6.Text = '' then
begin
Showmessage('请填写接收短信的手机号码。');
Exit;
end;
SendSmsRequest := TSendSmsRequest.Create;
try
SendSmsRequest.AccessKeyId := FThis.Edit1.Text;
SendSmsRequest.AccessKeySecret := FThis.Edit2.Text;
SendSmsRequest.TemplateCode := FThis.Edit3.Text;
SendSmsRequest.TemplateParam := FThis.Edit5.Text;
SendSmsRequest.SignName := FThis.Edit4.Text;
SendSmsRequest.PhoneNumbers := FThis.Edit6.Text;
SendSmsRequest.Provider := FThis.ComboBox1.ItemIndex;
if SendSmsRequest.Execute then
Showmessage('短信下发成功!')
else
Showmessage(SendSmsRequest.ResultMessage);
finally
FreeAndNil(SendSmsRequest);
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
- ③BitBtn2-OnClick事件
点击按钮,控件连接至TARS服务端发起短信发送操作。
procedure TMyHandler.BitBtn2Click;
//TARS发送短信
begin
if FThis.Edit6.Text = '' then
begin
Showmessage('请填写接收短信的手机号码。');
Exit;
end;
//以下两个参数如果为空,则使用服务端预设值
FThis.RFSMSSender1.AccessKeyId := FThis.Edit1.Text;
FThis.RFSMSSender1.AccessKeySecret := FThis.Edit2.Text;
FThis.RFSMSSender1.TemplateCode := FThis.Edit3.Text;
FThis.RFSMSSender1.TemplateParam := FThis.Edit5.Text;
FThis.RFSMSSender1.SignName := FThis.Edit4.Text;
FThis.RFSMSSender1.PhoneNumbers := FThis.Edit6.Text;
FThis.RFSMSSender1.Provider := TSmsApiProvider(FThis.ComboBox1.ItemIndex);
if FThis.RFSMSSender1.Execute then
Showmessage('短信下发成功!');
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 4. 运行结果
通过工具栏保存,将程序保存为 sdb 项目文件。
使用鼠标点击工具栏运行(Run),测试运行结果。根据配置参数的提示依次输入内容,点击左侧的[客户端发送短信]
或者[TARS发送短信]
,对应的设备会接收到通过短信平台发送的短信。
