⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uemail.pas

📁 关于利用DELPHI来进行企业级方案解决的著作的附书源码
💻 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 + -