📄 uemail.pas
字号:
unit uEmail;
interface
uses
Windows, Messages, SysUtils, Classes, HTTPApp, WebModu, HTTPProd,
CompProd, PagItems, SiteProd, WebAdapt, WebComp, MidItems, WebForm;
type
TEmailLogin = class(TWebPageModule)
AdapterPageProducer: TAdapterPageProducer;
Adapter1: TAdapter;
adfID: TAdapterField;
adfPassword: TAdapterField;
adfHost: TAdapterField;
adaLogin: TAdapterAction;
adfCount: TAdapterField;
adaRead: TAdapterAction;
adaWrite: TAdapterAction;
AdapterForm1: TAdapterForm;
LayoutGroup1: TLayoutGroup;
AdapterFieldGroup1: TAdapterFieldGroup;
FldadfID: TAdapterDisplayField;
FldadfPassword: TAdapterDisplayField;
FldadfHost: TAdapterDisplayField;
AdapterCommandGroup1: TAdapterCommandGroup;
CmdadaLogin: TAdapterActionButton;
LayoutGroup2: TLayoutGroup;
AdapterFieldGroup2: TAdapterFieldGroup;
FldadfCount: TAdapterDisplayField;
AdapterCommandGroup2: TAdapterCommandGroup;
CmdadaRead: TAdapterActionButton;
CmdadaWrite: TAdapterActionButton;
procedure adaLoginExecute(Sender: TObject; Params: TStrings);
procedure WebPageModuleActivate(Sender: TObject);
procedure adfIDGetValue(Sender: TObject; var Value: Variant);
procedure adfPasswordGetValue(Sender: TObject; var Value: Variant);
procedure adfHostGetDisplayText(Sender: TObject; var Value: String);
procedure adfHostGetValue(Sender: TObject; var Value: Variant);
procedure adfPasswordGetDisplayText(Sender: TObject;
var Value: String);
procedure adfIDGetDisplayText(Sender: TObject; var Value: String);
procedure adfCountGetValue(Sender: TObject; var Value: Variant);
private
FCount:integer;
public
{ Public declarations }
end;
function EmailLogin: TEmailLogin;
implementation
{$R *.dfm} {*.html}
uses WebReq, WebCntxt, WebFact, Variants,WebDisp, uViewMail, home;
function EmailLogin: TEmailLogin;
begin
Result := TEmailLogin(WebContext.FindModuleClass(TEmailLogin));
end;
procedure TEmailLogin.adaLoginExecute(Sender: TObject;
Params: TStrings);
begin
// 验证用户帐号和口令
with ViewMailModule do
begin
if popEmail.Connected then
begin
try
popEmail.Disconnect;
except
end;
end;
if adfID.ActionValue <> nil then
popEmail.UserId := adfID.ActionValue.Values[0]
else
raise Exception.Create('没有输入用户帐号!');
if adfPassword.ActionValue <> nil then
popEmail.Password := adfPassword.ActionValue.Values[0]
else
raise Exception.Create('没有输入用户口令');
if adfhost.ActionValue <> nil then
popEmail.host := adfhost.ActionValue.Values[0]
else
raise Exception.Create('没有输入邮件服务器!');
// 连接邮件服务器
try
popEmail.Connect;
if popEmail.Connected then
begin
// 连接成功后,将用户帐号和口令保存在Session中
hrhome.Session.Values['EmailID'] := popEmail.UserId;
hrhome.Session.Values['EmailPassword'] := popEmail.Password;
hrhome.Session.Values['EmailHost'] := popEmail.host;
FCount:=popEmail.CheckMessages;
FldadfCount.HideOptions:=[];
CmdadaRead.HideOptions:=[];
CmdadaWrite.HideOptions:=[];
end;
finally
try
popEmail.Disconnect;
except
end;
end;
end;
end;
procedure TEmailLogin.WebPageModuleActivate(Sender: TObject);
begin
FldadfCount.HideOptions:=[hoHideAlways];
CmdadaRead.HideOptions:=[bhoHideAlways];
CmdadaWrite.HideOptions:=[bhoHideAlways];
end;
procedure TEmailLogin.adfIDGetValue(Sender: TObject; var Value: Variant);
begin
value:=hrhome.Session.Values['EmailID'];
end;
procedure TEmailLogin.adfPasswordGetValue(Sender: TObject;
var Value: Variant);
begin
value:=hrhome.Session.Values['EmailPassword'];
end;
procedure TEmailLogin.adfHostGetDisplayText(Sender: TObject;
var Value: String);
begin
Value:=hrhome.Session.Values['EmailHost'];
end;
procedure TEmailLogin.adfHostGetValue(Sender: TObject; var Value: Variant);
begin
Value:=hrhome.Session.Values['EmailHost'];
end;
procedure TEmailLogin.adfPasswordGetDisplayText(Sender: TObject;
var Value: String);
begin
value:=hrhome.Session.Values['EmailPassword'];
end;
procedure TEmailLogin.adfIDGetDisplayText(Sender: TObject;
var Value: String);
begin
value:=hrhome.Session.Values['EmailID'] ;
end;
procedure TEmailLogin.adfCountGetValue(Sender: TObject;
var Value: Variant);
begin
value:=FCount;
end;
initialization
if WebRequestHandler <> nil then
WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(TEmailLogin, TWebPageInfo.Create([wpPublished, wpLoginRequired], '.html','','邮件登录'), crOnDemand, caCache));
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -