MailWAP.pas

<< Click to Display Table of Contents >>

Navigation:  Demos > X > WebMail32 >

MailWAP.pas

unit MailWAP;

 

interface

 

uses

 Classes, SysUtils, IWAppFormWAP, IWApplication, IWColor, IWTypes,

 Controls, IWVCLBaseControl, IWBaseControl, IWBaseWAPControl,

 IWControlWAP, IWWAPControls, IWGridsWAP, IdBaseComponent, IdComponent,

 IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3, IdMessage;

 

type

 TformMailWAP = class(TIWAppFormWAP)

 linkOtherServer: TIWHyperLinkWAP;

 gridHeaders: TIWGridWAP;

 linkLogout: TIWHyperLinkWAP;

 procedure linkOtherServerClick(Sender: TObject);

 procedure IWAppFormWAPCreate(Sender: TObject);

 procedure linkLogoutClick(Sender: TObject);

 private

 procedure DoLinkClick(Sender: TObject);

 public

 procedure GetHeaders;

 

 end;

 

implementation

 

uses ServerController, MainWAP, IWBaseForm, MsgWAP;

 

{$R *.dfm}

 

 

procedure TformMailWAP.GetHeaders;

var

 LPOP: TIdPOP3;

 i: Integer;

 LMsg: TIdMessage;

 LHyperLink: TIWHyperLinkWAP;

 LMsgCount: Integer;

begin

 try

 LPOP := TIdPOP3.Create(nil);

 LMsg := TIdMessage.Create(nil);

 gridHeaders.Cell[0,0].Text := 'Subject';

 gridHeaders.Cell[0,1].Text := 'From';

 gridHeaders.Cell[0,2].Text := 'Date';

 try

 LPOP.Host := UserSession.MailServer;

 LPOP.Username := UserSession.UserName;

 LPOP.Password := UserSession.Password;

 LPOP.Connect;

 LMsgCount := LPOP.CheckMessages;

 gridHeaders.RowCount := LMsgCount + 1;

 for i := 1 to LMsgCount do begin

 LMsg.Clear;

 LPOP.RetrieveHeader(i, LMsg);

 LHyperLink := TIWHyperLinkWAP.Create(self);

 LHyperLink.Caption := LMsg.Headers.Values['Subject'];

 LHyperLink.Tag := i;

 LHyperLink.OnClick := DoLinkClick;

 gridHEaders.Cell[i, 0].Control := LHyperLink;

 gridHeaders.Cell[i, 1].Text := LMsg.Headers.Values['From'];

 gridHeaders.Cell[i, 2].Text := LMsg.Headers.Values['Date'];

 end;

 LPOP.Disconnect;

 finally

 FreeAndNil(LPOP);

 FreeAndNil(LMsg);

 end;

 except

 on e: exception do begin

 gridHeaders.RowCount:=1;

 gridHeaders.Cell[0,0].Text:=e.Message;

 end;

 end;

end;

 

procedure TformMailWAP.DoLinkClick(Sender: TObject);

var

 LId: Integer;

begin

 LId := (Sender as TIWHyperLinkWAP).Tag;

 with TformMsgWAP.Create(WebApplication) do begin

 FMsgID := LId;

 Show;

 end;

 Release;

end;

 

procedure TformMailWAP.linkOtherServerClick(Sender: TObject);

begin

 TformMainWAP.Create(WebApplication).Show;

 Release;

end;

 

procedure TformMailWAP.IWAppFormWAPCreate(Sender: TObject);

begin

 GetHeaders;

end;

 

procedure TformMailWAP.linkLogoutClick(Sender: TObject);

begin

 WebApplication.Terminate('Thanks for using WebMail Mobile');

end;

 

end.