郵件發送-控制元件(WEB)
# FastWeb之郵件發送-控制元件(WEB)
# 1. 說明
該範例使用SMTP實現郵件發送的功能。使用該範例前,請先確認用來發送郵件的郵箱是否開啟了SMTP的功能,只有開啟了SMTP功能才可以在FastWeb中實現郵件的發送。目前郵件發送支援兩種發送模式。
- 純文字模式:正文內容為純文字。
- HTML文字模式:正文的內容為HTML文字。
# 2. 設計明細
開啟FastWeb設計器,分別加入下插圖之控制元件。或者點選左上角的[匯入]
選擇模板檔案來打開對應模板。
1:TUgEdit元件,控制元件名稱為UgEdit01
。
2:TUgEdit元件,控制元件名稱為UgEdit02
。
3:TUgEdit元件,控制元件名稱為UgEdit03
。
4:TUgEdit元件,控制元件名稱為UgEdit04
。
5:TUgMemo元件,控制元件名稱為UgMemo01
。
6:TUgHTMLMemo元件,控制元件名稱為UgHTMLMemo01
。
7:TUgButton元件,控制元件名稱為UgButton01
。
8:TUgComboBox元件,控制元件名稱為UgComboBox01
。
9:TUgFileUploadButton元件,控制元件名稱為UgFileUploadButton01
。
10:TUgEmailMsg元件,控制元件名稱為UgEmailMsg01
。
UgWebRunFrame屬性設定
Height
:設定頁面高度=467
。Width
:設定頁面寬度=475
。
1:UgEdit01屬性設定
EmptyText
:設定當編輯框為空時顯示的文字內容,設定為請輸入收件人
。FieldLabel
:設定標籤顯示的文字=收件人
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。
2:UgEdit02屬性設定
EmptyText
:設定當編輯框為空時顯示的文字內容,設定為輸入抄送人(可留空)
。FieldLabel
:設定標籤顯示的文字=抄送
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。
3:UgEdit03屬性設定
Text
:設定當編輯框顯示的文字內容,設定為歡迎使用FastWeb郵件發送控制元件
。FieldLabel
:設定標籤顯示的文字=主題
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。
4:UgEdit04屬性設定
EmptyText
:設定當編輯框為空時顯示的文字內容,設定為在正文為純文字時可新增附件
。FieldLabel
:設定標籤顯示的文字=附件
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。ReadOnly
:是否設定為只讀,設定為是
。
5:UgMemo01屬性設定
FieldLabel
:設定標籤顯示的文字=正文
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。
6:UgHTMLMemo屬性設定
FieldLabel
:設定標籤顯示的文字=正文
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。Visible
:設定控制元件是否可見,設定為False
。
7:UgButton01屬性設定
Caption
:設定按鈕顯示的字幕內容,設定為發送郵件
。
8:UgComboBox01屬性設定
FieldLabel
:設定標籤顯示的文字=正文格式
。FieldLabelAlign
:設定標籤顯示的相對位置。設定為laTop
。Items
:設定覈取方塊的可選項,點選屬性右側的[√]
,打開編輯框,在其中輸入如下圖所示的選項。
9:UgFileUploadButton01屬性設定
Caption
:設定按鈕的文字內容,設定為選擇附件
。
# 3. 程式設計
# 3.1. 程式初始設定
該程式無程式初始設定。
# 3.2. 事件設定
- ⑦UgButton01-OnClick事件
點選[發送郵件]
按鈕,發送郵件。
//JScript
function UgButton01OnClick(sender)
//發送郵件
{
if (UgEdit01.Text == ""){
ShowMessage(UGMM.LT("收件人不能為空,請填寫收件人郵箱地址。"));
return;
}
AttFile = new TStringlist();
Try{
UgEmailMsg01.Host = "smtp.163.com";
UgEmailMsg01.Port = 25;
UgEmailMsg01.Username = "sample@163.com";
UgEmailMsg01.Password = "password";
UgEmailMsg01.Address = UgEdit01.Text;
UgEmailMsg01.Subject = UgEdit03.Text;
UgEmailMsg01.CCAddressList = UgEdit02.Text;
UgEmailMsg01.Receipt = True;
if (UgComboBox01.ItemIndex == 1){
UgEmailMsg01.BodyHtml = True;
UgEmailMsg01.Body = UgHTMLMemo01.Lines.Text;//正文HTML
}
if (UgComboBox01.ItemIndex == 0){
UgEmailMsg01.Body = UgMemo01.Lines.Text;//正文純文字
}
AttFile.Add(UgEdit04.Text);
UgEmailMsg01.Attachments = AttFile;
if (UgEmailMsg01.SendEmail)
ShowMessage(UGMM.LT("郵件發送成功!"));
else
ShowMessage(UGMM.LT("郵件發送失敗!"));
}
Finally{
FreeAndNil(AttFile);
}
}
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
34
35
36
37
//PasScript
procedure UgButton01OnClick(sender: tobject);
//發送郵件
var
AttFile: TStringlist;
begin
if UgEdit01.Text = '' Then
Begin
ShowMessage(UGMM.LT('收件人不能為空,請填寫收件人郵箱地址。'));
Exit;
End;
AttFile := TStringlist.Create;
Try
UgEmailMsg01.Host := 'smtp.163.com';
UgEmailMsg01.Port := 25;
UgEmailMsg01.Username := 'sample@163.com';
UgEmailMsg01.Password := 'password';
UgEmailMsg01.Address := UgEdit01.Text;
UgEmailMsg01.Subject := UgEdit03.Text;
UgEmailMsg01.CCAddressList := UgEdit02.Text;
UgEmailMsg01.Receipt := True;
if UgComboBox01.ItemIndex = 1 Then
UgEmailMsg01.BodyHtml := True;
UgEmailMsg01.Body := UgHTMLMemo01.Lines.Text;//正文HTML
if UgComboBox01.ItemIndex = 0 Then
UgEmailMsg01.Body := UgMemo01.Lines.Text;//正文純文字
AttFile.Add(UgEdit04.Text);
UgEmailMsg01.Attachments := AttFile;
if UgEmailMsg01.SendEmail then
ShowMessage(UGMM.LT('郵件發送成功!'))
else
ShowMessage(UGMM.LT('郵件發送失敗!'));
Finally
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
34
35
36
// Make sure to add code blocks to your code group
- ⑧UgComboBox01-OnChange事件
點選切換正文格式中的內容時,修正對應的填寫專案。
//JScript
function UgComboBox01OnChange(sender)
{
if (UgComboBox01.ItemIndex == 0)
//純文字格式
{
UgMemo01.Visible = True;
UgHTMLMemo01.Visible = False;
UgFileUploadButton01.Enabled = True;
}
if (UgComboBox01.ItemIndex == 1){
//HTML格式,會清空附件地址
UgMemo01.Visible = False;
UgHTMLMemo01.Visible = True;
//UgFileUploadButton01.Enabled = False;
//UgEdit04.Text = "";
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//PasScript
procedure UgComboBox01OnChange(sender: tobject);
begin
if UgComboBox01.ItemIndex = 0 Then
//純文字格式
Begin
UgMemo01.Visible := True;
UgHTMLMemo01.Visible := False;
UgFileUploadButton01.Enabled := True;
End;
IF UgComboBox01.ItemIndex = 1 Then
//HTML格式,會清空附件地址
Begin
UgMemo01.Visible := False;
UgHTMLMemo01.Visible := True;
End;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Make sure to add code blocks to your code group
- ⑨UgFileUploadButton01-OnCompleted事件
當上傳檔案的按鈕完成上傳操作時,將檔案轉存至指定目錄並顯示目錄地址。
//JScript
function UgFileUploadButton01OnCompleted(sender,astreamtfilestream)
//上傳附件
var
DestName : string;
DestFolder : string;
{
//遠端檔案路徑
DestFolder=UGSM.StartPath+"temp\\";
DestName=DestFolder+UgFileUploadButton01.FileName;
//上傳檔案
CopyFile(UGCM.GetFileStreamFileName(AStream), DestName, False);
ugedit04.Text = DestName;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
//PasScript
procedure UgFileUploadButton01OnCompleted(sender: tobject;astream: tfilestream);
//上傳附件
var
DestName : string;
DestFolder : string;
begin
//遠端檔案路徑
DestFolder:=UGSM.StartPath+'temp\';
DestName:=DestFolder+UgFileUploadButton01.FileName;
//上傳檔案
CopyFile(UGCM.GetFileStreamFileName(AStream), DestName, False);
ugedit04.Text := DestName;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
// Make sure to add code blocks to your code group
# 4. 運行結果
使用滑鼠在FastWeb功能表,點選[儲存至資料庫]
按鈕,將其儲存至資料庫,點選[除錯運行]
確認能夠正常打開。
在其中填寫收件人的郵箱地址,填寫正文內容,如使用純文字格式可點選[選擇附件]
,在打開的對話方塊中選擇檔案進行新增。新增完成後點選[發送郵件]
,如出現了郵件發送成功!
字樣的對話方塊則發送完成,指定收件人可接收到該郵件。