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