www.pudn.com > EmailServer.zip > Settings_SmtpServerAccessControl.pas
unit Settings_SmtpServerAccessControl;
(******************************************************************************)
(* *)
(* Hermes Smtp Server Settings Access Banning Dialog Box *)
(* Part of Hermes SMTP/POP3 Server. *)
(* Copyright(C) 2000 by Alexander J. Fanti, All Rights Reserver Worldwide. *)
(* *)
(* Created February 13, 2000 by Alexander J. Fanti. See License.txt *)
(* *)
(* Used by: Settings_SmtpServer *)
(* Uses: DataU1 *)
(* *)
(* Description: This Modal dialog window allows the user to change Smtp *)
(* server access settings. *)
(* *)
(* Revisions: 2/13/2000 AJF Commented *)
(* *)
(******************************************************************************)
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, Spin, Buttons;
type
TfrmSettings_SmtpServerAccessControl = class(TForm)
cbxBannedDomains: TCheckBox;
lstBannedDomains: TListBox;
cbxBannedMailboxes: TCheckBox;
lstBannedMailboxes: TListBox;
cbxRejectToCount: TCheckBox;
speRejectToCount: TSpinEdit;
popupBannedDomains: TPopupMenu;
pu_BannedDomains_Add: TMenuItem;
pu_BannedDomains_Delete: TMenuItem;
popupBannedMailboxes: TPopupMenu;
pu_BannedMailboxes_Add: TMenuItem;
pu_BannedMailboxes_Delete: TMenuItem;
popupBannedAddresses: TPopupMenu;
pu_BannedAddresses_Add: TMenuItem;
pu_BannedAddresses_Delete: TMenuItem;
btnOK: TBitBtn;
btnCancel: TBitBtn;
cbxBannedAddresses: TCheckBox;
lstBannedAddresses: TListBox;
Label8: TLabel;
Label1: TLabel;
procedure btnOKClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure popupBannedDomainsPopup(Sender: TObject);
procedure popupBannedMailboxesPopup(Sender: TObject);
procedure popupBannedAddressesPopup(Sender: TObject);
procedure pu_BannedDomains_AddClick(Sender: TObject);
procedure pu_BannedDomains_DeleteClick(Sender: TObject);
procedure pu_BannedMailboxes_AddClick(Sender: TObject);
procedure pu_BannedMailboxes_DeleteClick(Sender: TObject);
procedure pu_BannedAddresses_AddClick(Sender: TObject);
procedure pu_BannedAddresses_DeleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmSettings_SmtpServerAccessControl: TfrmSettings_SmtpServerAccessControl;
implementation
{$R *.DFM}
uses DataU1;
procedure TfrmSettings_SmtpServerAccessControl.FormShow(Sender: TObject);
var
x : longint;
begin
// Populate dialog with data
lstBannedDomains.Clear;
for x := 0 to INI.Smtp_Access_BannedDomains.Count -1 do
lstBannedDomains.Items.Add(INI.Smtp_Access_BannedDomains[x]);
lstBannedMailboxes.Clear;
for x := 0 to INI.Smtp_Access_BannedMailboxes.Count -1 do
lstBannedMailboxes.Items.Add(INI.Smtp_Access_BannedMailboxes[x]);
lstBannedAddresses.Clear;
for x := 0 to INI.Smtp_Access_BannedAddresses.Count -1 do
lstBannedAddresses.Items.Add(INI.Smtp_Access_BannedAddresses[x]);
cbxBannedDomains.Checked := INI.Smtp_Access_BanDomains;
cbxBannedMailboxes.Checked := INI.Smtp_Access_BanMailboxes;
cbxBannedAddresses.Checked := INI.Smtp_Access_BanAddresses;
cbxRejectToCount.Checked := INI.Smtp_Access_OnlyForUnderXUsers;
speRejectToCount.Value := INI.Smtp_Access_OnlyForUsersCount;
end;
procedure TfrmSettings_SmtpServerAccessControl.btnOKClick(Sender: TObject);
begin
// Save Access Control
INI.SetSmtp_Access_BannedDomains(lstBannedDomains.Items);
INI.SetSmtp_Access_BannedMailboxes(lstBannedMailboxes.Items);
INI.SetSmtp_Access_BannedAddresses(lstBannedAddresses.Items);
INI.Smtp_Access_BanDomains := cbxBannedDomains.Checked;
INI.Smtp_Access_BanMailboxes := cbxBannedMailboxes.Checked;
INI.Smtp_Access_BanAddresses := cbxBannedAddresses.Checked;
INI.Smtp_Access_OnlyForUnderXUsers := cbxRejectToCount.Checked;
INI.Smtp_Access_OnlyForUsersCount := speRejectToCount.Value;
end;
procedure TfrmSettings_SmtpServerAccessControl.popupBannedDomainsPopup(Sender: TObject);
begin
// Enable Domain list popum menu items
pu_BannedDomains_Delete.Enabled := lstBannedDomains.SelCount > 0;
end;
procedure TfrmSettings_SmtpServerAccessControl.pu_BannedDomains_AddClick(Sender: TObject);
var
NewDomain : String;
x : Longint;
Found : Boolean;
begin
// Add a new domain to the Domains list
NewDomain := Trim(InputBox('Add Banned Domain', 'Domain', ''));
if NewDomain <> '' then begin
Found := False;
for x := 0 to lstBannedDomains.Items.Count -1 do
if LowerCase(NewDomain) = LowerCase(lstBannedDomains.Items[x]) then
Found := True;
if not Found then lstBannedDomains.Items.Add(NewDomain);
end;
end;
procedure TfrmSettings_SmtpServerAccessControl.pu_BannedDomains_DeleteClick(Sender: TObject);
var
x : Longint;
begin
// remove domains from the domain list
for x := lstBannedDomains.Items.Count -1 downto 0 do
if lstBannedDomains.Selected[x] then lstBannedDomains.Items.Delete(x);
end;
procedure TfrmSettings_SmtpServerAccessControl.popupBannedMailboxesPopup(
Sender: TObject);
begin
// Enable Domain list popum menu items
pu_BannedMailboxes_Delete.Enabled := lstBannedMailboxes.SelCount > 0;
end;
procedure TfrmSettings_SmtpServerAccessControl.pu_BannedMailboxes_AddClick(Sender: TObject);
var
NewMailbox : String;
x : Longint;
Found : Boolean;
begin
// Add a new mailbox to the mailboxes list
NewMailbox := Trim(InputBox('Add Banned Mailbox', 'Mailbox', ''));
if NewMailbox <> '' then begin
Found := False;
for x := 0 to lstBannedMailboxes.Items.Count -1 do
if LowerCase(NewMailbox) = LowerCase(lstBannedMailboxes.Items[x]) then
Found := True;
if not Found then lstBannedMailboxes.Items.Add(NewMailbox);
end;
end;
procedure TfrmSettings_SmtpServerAccessControl.pu_BannedMailboxes_DeleteClick(
Sender: TObject);
var
x : Longint;
begin
// remove mailboxes from the mailbox list
for x := lstBannedMailboxes.Items.Count -1 downto 0 do
if lstBannedMailboxes.Selected[x] then lstBannedMailboxes.Items.Delete(x);
end;
procedure TfrmSettings_SmtpServerAccessControl.popupBannedAddressesPopup(
Sender: TObject);
begin
// Enable Domain list popum menu items
pu_BannedAddresses_Delete.Enabled := lstBannedAddresses.SelCount > 0;
end;
procedure TfrmSettings_SmtpServerAccessControl.pu_BannedAddresses_AddClick(
Sender: TObject);
var
NewAddress : String;
x : Longint;
Found : Boolean;
begin
// Add a new domain to the Domains list
NewAddress := Trim(InputBox('Add Banned Address', 'Address', ''));
if NewAddress <> '' then begin
Found := False;
for x := 0 to lstBannedAddresses.Items.Count -1 do
if LowerCase(NewAddress) = LowerCase(lstBannedAddresses.Items[x]) then
Found := True;
if not Found then lstBannedAddresses.Items.Add(NewAddress);
end;
end;
procedure TfrmSettings_SmtpServerAccessControl.pu_BannedAddresses_DeleteClick(
Sender: TObject);
var
x : Longint;
begin
// remove domains from the domain list
for x := lstBannedAddresses.Items.Count -1 downto 0 do
if lstBannedAddresses.Selected[x] then lstBannedAddresses.Items.Delete(x);
end;
end.