Pop3MainUnit.pas 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. unit Pop3MainUnit;
  2. {
  3. Pop3 Server Mainform
  4. This form just holds an output(Debug) window to monitor the communication
  5. between a client and this server.
  6. You can easily connect to using Microsoft Outlook to this server and monitor the progess
  7. of sending and receiving mails.
  8. (c)2005
  9. Jörg Meier (Bob)
  10. [email protected]
  11. }
  12. interface
  13. uses
  14. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  15. StdCtrls, Menus, ExtCtrls, Buttons;
  16. type
  17. TPop3Main = class(TForm)
  18. Memo1: TMemo;
  19. MainMenu1: TMainMenu;
  20. File1: TMenuItem;
  21. Close1: TMenuItem;
  22. Extra1: TMenuItem;
  23. Options1: TMenuItem;
  24. GetSendBtn: TBitBtn;
  25. CheckTimer: TTimer;
  26. Panel1: TPanel;
  27. StartBtn: TButton;
  28. StopBtn: TButton;
  29. procedure StartBtnClick(Sender: TObject);
  30. procedure StopBtnClick(Sender: TObject);
  31. procedure FormShow(Sender: TObject);
  32. procedure Options1Click(Sender: TObject);
  33. procedure Close1Click(Sender: TObject);
  34. procedure CheckTimerTimer(Sender: TObject);
  35. procedure GetSendBtnClick(Sender: TObject);
  36. private
  37. { Private-Deklarationen }
  38. public
  39. { Public-Deklarationen }
  40. Procedure WndProc(var Message:tMessage); Override;
  41. end;
  42. Const LogMessageNo = WM_USER+$666; // We need this for communication
  43. LogString = 0; // for other units with us
  44. LogInteger = 1; //
  45. var
  46. Pop3Main: TPop3Main;
  47. implementation
  48. Uses MBoxDataModule, ProviderUnit;
  49. {$R *.DFM}
  50. procedure TPop3Main.WndProc(var Message: tMessage);
  51. Var MyString : PChar;
  52. begin
  53. If Message.Msg = LogMessageNo then
  54. begin
  55. Case Message.WParam of
  56. LogString : begin
  57. MyString := PChar(Message.LParam);
  58. Memo1.Lines.Add(String(MyString));
  59. StrDispose(MyString);
  60. end;
  61. LogInteger : begin
  62. Memo1.Lines.Add(IntToStr(Message.LParam));
  63. end;
  64. else
  65. end;
  66. end
  67. else begin
  68. inherited;
  69. end;
  70. end;
  71. procedure TPop3Main.StartBtnClick(Sender: TObject);
  72. begin
  73. Memo1.Clear;
  74. StopBtn.Enabled := True;
  75. StartBtn.Enabled := False;
  76. MBoxDataMod.RunServer; // Local servers
  77. CheckTimer.Interval := 1000 * 60* StrToInt(ProviderForm.CheckMailTime.Text);
  78. CheckTimer.Enabled := True;
  79. end;
  80. procedure TPop3Main.StopBtnClick(Sender: TObject);
  81. begin
  82. StopBtn.Enabled := False;
  83. StartBtn.Enabled := True;
  84. MBoxDataMod.StopServer;
  85. end;
  86. procedure TPop3Main.FormShow(Sender: TObject);
  87. begin
  88. Self.Caption := 'Pop3 Server';
  89. end;
  90. procedure TPop3Main.Options1Click(Sender: TObject);
  91. begin
  92. ProviderForm.ShowModal;
  93. end;
  94. procedure TPop3Main.Close1Click(Sender: TObject);
  95. begin
  96. Close
  97. end;
  98. procedure TPop3Main.CheckTimerTimer(Sender: TObject);
  99. begin
  100. CheckTimer.Enabled := False;
  101. try
  102. MBoxDataMod.GetSendMail;
  103. Except
  104. // ignore all Errors
  105. End;
  106. CheckTimer.Interval := 60*1000*StrToInt(ProviderForm.CheckMailTime.Text);
  107. CheckTimer.Enabled := True;
  108. end;
  109. procedure TPop3Main.GetSendBtnClick(Sender: TObject);
  110. begin
  111. GetSendBtn.Enabled := False;
  112. CheckTimerTimer(Sender);
  113. GetSendBtn.Enabled := True;
  114. end;
  115. end.