📄 uemailmessage.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 + -