##
#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX;
use CGI qw/:standard/;
require SDBM_File;
my %emails;
my $list = ""; #change to location of database
my $adminmail = 'admin@test.com';
my $sendmail = "/usr/lib/sendmail";
tie %emails, 'SDBM_File', $list, O_CREAT | O_RDWR, 0644;
flock($list, 2) || die "flocking failed $!";
if ( !tied %emails ) {
print "database unsuccessful $!.\n";
}
print header, start_html('Email Management');
print start_form(), table(
Tr(
td("Name: "),
td(
textfield(
-name => 'name',
-size => 40
)
)
),
Tr(
td("Email: "),
td(
textfield(
-name => 'email',
-size => 40
)
)
),
Tr(
td(
radio_group(
-name => 'update',
-values => [ 'add', 'rem' ]
)
),
),
Tr( td(), td(submit) ),
),
end_form(), hr();
if(param()){
my $email = param('email');
my $name = param('name');
my $update = param('update');
if($name){
if($email){
if($update eq "add"){
if(exists $emails{$email}){
print "Email already exists in database.\n";
}
else{
$emails{$email} = $name;
print "Email address added to our system!\n";
print "Database contains:\n";
foreach ( sort keys(%emails) ) {
print "$_ => $emails{$_}
";
}
}
}
elsif($update eq "rem"){
if(exists $emails{$email}){
del $emails{$email};
print "Email address was removed from the system.\n";
}
else{
print "Oops, it doesn't appear that address is in our database.\n";
}
}
}
else{
print "For this to work please add your email address.\n";
}
}else{
print "Unless your name is null, please go back and fill it in.\n";
}
}
print end_html();