郵件發送
# Smart之郵件發送
# 1. 說明
採用SMTP通訊協議,通過客戶端實現郵件的收與發等相關功能。
通過範例學習,可以掌握在Smart上使用控制元件或者函式發送郵件的方法。
# 2. 設計明細
開啟Smart智慧控制平臺,分別加入下插圖之控制元件。或者通過點選功能表欄[檔案]
-[打開專案]
選擇專案打開該範例。
1:TLabel元件,控制元件名稱為Label1
。
2:TLabel元件,控制元件名稱為Label2
。
3:TLabel元件,控制元件名稱為Label3
。
4:TLabel元件,控制元件名稱為Label4
。
5:TLabel元件,控制元件名稱為Label5
。
6:TEdit元件,控制元件名稱為Edit1
。
7:TEdit元件,控制元件名稱為Edit2
。
8:TEdit元件,控制元件名稱為Edit3
。
9:TEdit元件,控制元件名稱為Edit4
。
10:TMemo元件,控制元件名稱為Memo1
。
11:TButton元件,控制元件名稱為Button1
。
12:TButton元件,控制元件名稱為Button2
。
13:TCheckBox元件,控制元件名稱為CheckBox1
。
14:TButton元件,控制元件名稱為Button3
。
15:TOpenDialog元件,控制元件名稱為OpenDialog1
。
16:TEmailMsg元件,控制元件名稱為Email
。
Main窗體屬性設定
BorderStyle
:設定窗體的邊框型別,設定為bsDialog
。Caption
:主窗體標題,設定為郵件發送
。ClientHeight
:窗體客戶區高度=411
。ClientWidth
:窗體客戶區寬度=624
。
1:Label1屬性設定
Caption
:設定標籤中顯示的內容,設定為收件人
。Font
:設定字型大小,設定其中的Size
為12
。
2:Label2屬性設定
Caption
:設定標籤中顯示的內容,設定為抄送
。Font
:設定字型大小,設定其中的Size
為12
。
3:Label3屬性設定
Caption
:設定標籤中顯示的內容,設定為主題
。Font
:設定字型大小,設定其中的Size
為12
。
4:Label4屬性設定
Caption
:設定標籤中顯示的內容,設定為附件
。Font
:設定字型大小,設定其中的Size
為12
。
5:Label5屬性設定
Caption
:設定標籤中顯示的內容,設定為正文
。Font
:設定字型大小,設定其中的Size
為12
。
6:Edit1屬性設定
Font
:設定字型大小,設定其中的Size
為12
。TextHint
:設定文字提示資訊,設定為請輸入收件人
。
7:Edit2屬性設定
Font
:設定字型大小,設定其中的Size
為12
。TextHint
:設定文字提示資訊,設定為輸入抄送人(可留空)
。
8:Edit3屬性設定
Font
:設定字型大小,設定其中的Size
為12
。Text
:設定顯示的文字資訊,設定為歡迎使用FastWeb郵件
。TextHint
:設定文字提示資訊,設定為請輸入主題
。
9:Edit4屬性設定
Font
:設定字型大小,設定其中的Size
為12
。ReadOnly
:設定為只讀模式,設定為True
。
10:Memo1屬性設定
Font
:設定字型大小,設定其中的Size
為12
。
11:Button1屬性設定
Caption
:設定按鈕顯示的文字內容,設定為控制元件發送
。Font
:設定字型大小,設定其中的Size
為12
。
12:Button2屬性設定
Caption
:設定按鈕顯示的文字內容,設定為函式發送
。Font
:設定字型大小,設定其中的Size
為12
。
13:CheckBox1屬性設定
Caption
:設定顯示的文字內容,設定為HTML正文
。Font
:設定字型大小,設定其中的Size
為12
。
14:Button3屬性設定
Caption
:設定顯示的文字內容,設定為選擇附件
。Font
:設定字型大小,設定其中的Size
為12
。
# 3. 程式設計
# 3.1. 程式初始設定
該程式無初始設定。
# 3.2. 事件設定
- 11:Button1-OnClick事件
點選按鈕,使用控制元件的方式發送郵件。
procedure TMyHandler.Button1Click;
//使用郵件的控制元件方式發送
begin
FThis.Email.Host := 'smtp.163.com';
FThis.Email.Port := 25;
FThis.Email.Username := 'sample@163.com';
FThis.Email.Password := 'password';
FThis.Email.Receipt := True;
FThis.Email.Address := FThis.Edit1.Text;
FThis.Email.CCAddressList := FThis.Edit2.Text;
FThis.Email.Subject := FThis.Edit3.Text;
FThis.Email.Attachments.Text := FThis.Edit4.Text;
FThis.Email.BodyHtml := FThis.CheckBox1.Checked;
FThis.Email.Body := FThis.Memo1.Lines.Text;
if FThis.Email.SendEmail then
begin
ShowMessage(FThis.siLang1.GetTextW('郵件發送成功!'));
end;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- 12:Button2-OnClick事件
點選按鈕,以函式的方式發送郵件。
procedure TMyHandler.Button2Click;
//使用函式的方式發送
var
Param: TStringlist;
AttFile: TStringlist;
begin
Param := TStringlist.Create;
AttFile := TStringlist.Create;
Try
Param.Values['Host'] := 'smtp.163.com';
Param.Values['Port'] := '25';
Param.Values['Username'] := 'sample@163.com';
Param.Values['Password'] := 'password';
Param.Values['Address'] := FThis.Edit1.Text;
Param.Values['Body'] := FThis.Memo1.Lines.text;
Param.Values['Subject'] := FThis.Edit3.Text;
Param.Values['CCAddressList'] := FThis.Edit2.Text;
Param.Values['Receipt'] := '1';
if FThis.CheckBox1.Checked then
Param.Values['Bodyhtml'] := '1'
else
Param.Values['Bodyhtml'] := '0';
AttFile.Add(FThis.Edit4.Text);
if paxfunc.SendEmail(Param, AttFile) then
ShowMessage(FThis.siLang1.GetTextW('郵件發送成功!'))
else
ShowMessage(FThis.siLang1.GetTextW('郵件發送失敗!'));
Finally
FreeAndNil(Param);
FreeAndNil(AttFile);
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
29
30
31
32
33
- 14:Button3-OnClick事件
點選按鈕,打開檔案選擇的對話方塊。
procedure TMyHandler.Button3Click;
begin
if FThis.OpenDialog1.Execute(0) then
FThis.Edit4.Text := FThis.OpenDialog1.FileName;
end;
2
3
4
5
# 4. 運行結果
使用滑鼠點選工具欄運行(Run),測試運行結果。
通過工具欄儲存,將程式儲存為 sdb 專案檔案。
在指令碼中修改郵件伺服器的參數以及使用者名稱密碼資訊后,可使用控制元件發送或者函式發送的方式實現郵件發送的效果。