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

📄 uemailmessage.pas

📁 关于利用DELPHI来进行企业级方案解决的著作的附书源码
💻 PAS
字号:

unit uEmailMessage;

interface

uses
  Windows, Messages, SysUtils, Classes, HTTPApp, WebModu, HTTPProd,
  WebAdapt, WebComp;

type
  TEmailMessageModule = class(TWebPageModule)
    PageProducer: TPageProducer;
    EmailMessage: TAdapter;
    MessageId: TAdapterField;
    MessageFromName: TAdapterField;
    MessageFromEmail: TAdapterField;
    MessageSubject: TAdapterField;
    MessageDate: TAdapterField;
    MessageBody: TAdapterField;
    StartMessage: TAdapterField;
    procedure StartMessageGetValue(Sender: TObject; var Value: Variant);
    procedure MessageIdGetValue(Sender: TObject; var Value: Variant);
    procedure MessageFromNameGetValue(Sender: TObject; var Value: Variant);
    procedure MessageFromEmailGetValue(Sender: TObject;
      var Value: Variant);
    procedure MessageSubjectGetValue(Sender: TObject; var Value: Variant);
    procedure MessageDateGetValue(Sender: TObject; var Value: Variant);
    procedure MessageBodyGetValue(Sender: TObject; var Value: Variant);
  private
    { Private declarations }
    FMessageId: Integer;
    FMessageSubject: string;
    FMessageFromName: string;
    FMessageFromEmail: string;
    FMessageDate: string;
    FMessageBody: string;
  public
    { Public declarations }
  end;

  function EmailMessageModule: TEmailMessageModule;

implementation

{$R *.dfm}  {*.html}

uses WebReq, WebCntxt, WebFact, Variants, uViewMail, IdEMailAddress, home;

function EmailMessageModule: TEmailMessageModule;
begin
  Result := TEmailMessageModule(WebContext.FindModuleClass(TEmailMessageModule));
end;

procedure TEmailMessageModule.StartMessageGetValue(Sender: TObject;
  var Value: Variant);
begin
  try
    if Request.QueryFields.Values['id'] <> '' then
    begin
      FMessageId := StrToInt(Request.QueryFields.Values['id']);

      with ViewMailModule do
      begin
        if popEmail.Connected then
        try
          popEmail.Disconnect;
        except
        end;
        popEmail.UserId := hrhome.Session.Values['EmailID'];
        popEmail.Password := hrhome.Session.Values['EmailPassword'];
        popEmail.host :=hrhome.Session.Values['EmailHost'] ;
        popEmail.Connect;
        try
          msgEmail.Clear;
          msgEmail.NoDecode := True;
          popEmail.Retrieve(FMessageId, msgEmail);

          FMessageSubject := msgEmail.Subject;
          FMessageFromName := msgEmail.From.Name;
          FMessageFromEmail := msgEmail.From.Address;
          FMessageDate := DateTimeToStr(msgEmail.Date);
          FMessageBody := msgEmail.Body.Text;

          Value := True;
        finally
          try
            popEmail.Disconnect;
          except
          end
        end;
      end;
    end
    else
      raise Exception.Create('No valid message id passed to the EmailMessageModule');
  except
    on E: Exception do
    begin
      Value := False; // Failure
      EmailMessage.Errors.AddError(E);
    end;
  end;
end;

procedure TEmailMessageModule.MessageIdGetValue(Sender: TObject;
  var Value: Variant);
begin
  Value := FMessageId;
end;

procedure TEmailMessageModule.MessageFromNameGetValue(Sender: TObject;
  var Value: Variant);
begin
  Value := FMessageFromName;
end;

procedure TEmailMessageModule.MessageFromEmailGetValue(Sender: TObject;
  var Value: Variant);
begin
  Value := FMessageFromEmail; 
end;

procedure TEmailMessageModule.MessageSubjectGetValue(Sender: TObject;
  var Value: Variant);
begin
  Value := FMessageSubject; 
end;

procedure TEmailMessageModule.MessageDateGetValue(Sender: TObject;
  var Value: Variant);
begin
  Value := FMessageDate;  
end;

procedure TEmailMessageModule.MessageBodyGetValue(Sender: TObject;
  var Value: Variant);
begin
  Value := FMessageBody;
end;

initialization
  if WebRequestHandler <> nil then
    WebRequestHandler.AddWebModuleFactory(TWebPageModuleFactory.Create(TEmailMessageModule, TWebPageInfo.Create([{wpPublished} {wpLoginRequired}], '.html' ,'', '阅读邮件'), crOnDemand, caCache));

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -