www.pudn.com > umpl_xmail-2.11.rar > umpl_xmail_install-211.pl


#!/usr/bin/perl

#########################################################
# UMPL xmail
# installation v 2.11
# (c) 2004-04-02 waaf.net computing
# Achim Schmidt schmidt@waaf.net
#
# This Script does NOT work on none Unix-like platforms!
#########################################################

$doc_root 	= "/home/umpl_xmail";
$auspfad2 	= "umpl_xmail_install.sh";
$myauspfad2 	= "umpl_xmail_install.mysql";
$xmcryptbin2 	= "/var/MailRoot/bin/XMCrypt";
$ctrlaccounts2 	= "/var/MailRoot/ctrlaccounts.tab";
$ipmap2		= "/var/MailRoot/ctrl.ipmap.tab";

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$timestamp = sprintf ("%4d-%02d-%02d_%02d-%02d-%02d\n",$year+1900,$mon+1,$mday,$hour,$min,$sec);
chop($timestamp );

srand(time());

sub clear_the_screen {
	print "\e[2J";
	system(($^O eq 'MSWin32') ? 'cls' : 'clear');
}
sub raus {
	print "\nNothing has been done - bye!\n";
	exit;
}
sub mach_pw {
	return rand (99999999);
}
sub kopiere_neue_datei {
	local ($pfad, $selber) = @_;
	my $befehl = "cp $pfad $doc_root/$pfad";
	print "$befehl \n";
	if($selber eq "No"){
	 system("$befehl");
	}
	if($selber eq "Yes"){
	 open (FILE,">>$auspfad") || die "Could not write to textfile";
	  print FILE "$befehl\n";
  	 close (FILE);
	}
}
sub mach_dir {
	local ($pfad, $selber) = @_;
	my $befehl = "mkdir $doc_root/$pfad";
	print "$befehl \n";
	if($selber eq "No"){
	 if(system($befehl)) { print "mkdir failed\n"; }
	}
	if($selber eq "Yes"){
	 open (FILE,">>$auspfad") || die "Could not write to textfile";
	  print FILE "$befehl\n";
  	 close (FILE);
	}
}
sub change_dir_777 {
	local ($pfad, $selber) = @_;
	my $befehl = "chmod 777 $doc_root/$pfad";
	print "$befehl \n";
	if($selber eq "No"){
	 if(system($befehl)) { print "chmod failed\n"; }
	}
	if($selber eq "Yes"){
	 open (FILE,">>$auspfad") || die "Could not write to textfile";
	  print FILE "$befehl\n";
  	 close (FILE);
	}
}
sub change_mod_755 {
        local ($pfad, $selber) = @_;
        my $befehl = "chmod 777 $doc_root/$pfad";
        print "$befehl \n";
        if($selber eq "No"){
         if(system($befehl)) { print "chmod failed\n"; }
        }
        if($selber eq "Yes"){
         open (FILE,">>$auspfad") || die "Could not write to textfile";
          print FILE "$befehl\n";
         close (FILE);
        }
}


sub weitermachen {
	print "Please press  to succeed or press 'X' to exit! \n";
	$weiter = ;
	chop($weiter);
	if($weiter eq "X"){ raus(); }
	if($weiter eq "x"){ raus(); }
	if($weiter eq "exit"){ raus(); }
	if($weiter eq "Exit"){ raus(); }

}


# close STDERR;


clear_the_screen();

print 	"------------------------------------------------------\n";
print 	"|   UMPL Xmail   -   Installation of Version 2.11    |\n";
print 	"------------------------------------------------------\n";
print 	"\n";
print 	"Nothing will be done until all questions are answered!\n";
print 	"\n";
print 	"All commands can be done by the script or manually by \n";
print 	"yourself !\n";
print 	"\n";
print 	"------------------------------------------------------\n";
print 	"Please enter the directory where you want to have UMPL\n";
print 	"xmail installaed (Not MAIL_ROOT) or press  for \n";
print 	"the default value:\n[$doc_root] > ";
$doc_root2 = ; chop($doc_root2); if($doc_root2 ne ""){ $doc_root = $doc_root2; }
print 	"\n";

print 	"Do you want to copy the files and create directories by\n".
	"yourself?\n[No] > ";
$selber = ; chop($selber);
if($selber eq ""){ $selber="No"; } if($selber eq "N"){ $selber="No"; } if($selber eq "NO"){ $selber="No"; } if($selber eq "no"){ $selber="No"; } if($selber eq "nein"){ $selber="No"; } if($selber eq "Nein"){ $selber="No"; } if($selber eq "n"){ $selber="No"; } if($selber eq "Y"){ $selber="Yes"; } if($selber eq "YES"){ $selber="Yes"; } if($selber eq "yes"){ $selber="Yes"; } if($selber eq "y"){ $selber="Yes"; } if($selber eq "j"){ $selber="Yes"; } if($selber eq "ja"){ $selber="Yes"; } if($selber eq "J"){ $selber="Yes"; } if($selber eq "Ja"){ $selber="Yes"; }
if( ($selber ne "Yes") && ($selber ne "No") ) { raus(); }
$letzer_bs = substr($doc_root,-1,1);
if($letzer_bs eq "/"){ $doc_root = substr($doc_root,0,-1); }
print 	"\n";

if($selber eq "Yes"){
print 	"Give a name for the textfile where all shell-commands \n".
	"should be stored?\n".
"[$auspfad2] > "; 
$auspfad = ; chop($auspfad); if($auspfad eq ""){ $auspfad = $auspfad2; }
print 	"[NODE] Commands will be stored to '$auspfad'\n";
	 open (FILE,">$auspfad") || die "Could not create textfile!\n\nNothing done!\n...bye";
	  print FILE "$befehl\n";
  	 close (FILE);
	print "\n";
}

print 	"Give a name for the textfile where all mysql-queries \n".
	"for setting up the database should be stored? \n".
"[$myauspfad2] > ";
	$myauspfad = ;
	chop($myauspfad);
if($myauspfad eq ""){ $myauspfad = $myauspfad2; }
print 	"[NODE] MySQL Queries will be stored to '$myauspfad'\n";

	 open (FILE,">$myauspfad") || die "Could not create textfile!\n\nNothing done!\n...bye";
	  print FILE "\n";
  	 close (FILE);

print 	"\nOk - now we are ready to start with the tasks...\n";
weitermachen();



print	"------------------------------------------------------\n".
	"[TASK] Create Xmail Xtrl-Account: \n\n";

print	"Please enter the location of the XMCrypt binary:\n".
	"[$xmcryptbin2] > ";
$xmcryptbin = ; chop($xmcryptbin); if($xmcryptbin eq ""){ $xmcryptbin = $xmcryptbin2; }

print 	"Please enter the location of the ctrlaccounts.tab file: \n".
	"[$ctrlaccounts2] > ";
$ctrlaccounts = ; chop($ctrlaccounts); if($ctrlaccounts eq ""){ $ctrlaccounts = $ctrlaccounts2; }

print 	"Please enter a password for the ctrl-account: \n".
	"[] > ";
$XM_pw = ; chop($XM_pw);
if($XM_pw eq ""){
	$XM_pw = mach_pw();
print	"[NODE] Password was null - set it to '$XM_pw'\n";
}

$cryptedpw_bef 	= "$xmcryptbin $XM_pw";
$cryptedpw 	= `$cryptedpw_bef`;
chop($cryptedpw);

open (FILE3,">>$ctrlaccounts"); # || die "Could not write to $ctrlaccounts!\n...bye";
  print FILE3 "\n\"umplxmail\"\t\"$cryptedpw\"\n";
close (FILE3);
print 	"[NODE] Added User 'umplxmail' to '$ctrlaccounts'\n";

print 	"[DONE]\n".
	"------------------------------------------------------\n".
	"[TASK] Creating MySQL Queries for setting up database: \n".
	"(All queries will be written to $myauspfad!) \n\n";
print	"Do you want to use an existing database? \n".
	"Give the name or leave blank for creating a new one.\n".
	"[] > ";
$MS_db = ; chop($MS_db);
if($MS_db eq ""){
	$MS_db = "umpl_xmail";
	$_query = "CREATE DATABASE $MS_db;\n";

print	"Should we create a new user for the database? \n".
	"Give the name of the new user or type 'N' for skipping this.\n".
	"[umpl_xmail] > ";
$MS_user = ; chop($MS_user);
if($MS_user eq ""){ $MS_user="umpl_xmail"; }

if( ($MS_user eq "N") || ($MS_user eq "n") || ($MS_user eq "no") || ($MS_user eq "No")){
# noop();
} else {

	$MS_pw = mach_pw();

	$_query .= "
USE mysql;
REPLACE INTO user (Host,User,Password) VALUES
('localhost','$MS_user',PASSWORD('$MS_pw'));

REPLACE INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,
Delete_priv, Create_priv,Drop_priv,Alter_priv,Index_priv) VALUES
('localhost','$MS_db','$MS_user','Y','Y','Y','Y','Y','Y','Y','Y');

FLUSH PRIVILEGES;
	";
}


} else {

print	"[NODE] !!!!!   Check the file /user_data.php and modify\n".
	"       to your neads - At least you have to add the My-\n".
	"       SQL user and password !!!!!\n";

}

$_query .= "
CREATE TABLE $MS_db.kontakte ( id int(11) NOT NULL auto_increment, 
user varchar(128) default NULL, name varchar(128) default NULL, 
email varchar(128) default NULL, firma varchar(128) default NULL, 
PRIMARY KEY (id) ) TYPE=MyISAM;

CREATE TABLE $MS_db.login ( user varchar(128) default NULL, 
zeit int(12) default NULL, host varchar(128) default NULL, 
sid varchar(255) default NULL, agent varchar(128) default NULL ) 
TYPE=MyISAM;

CREATE TABLE $MS_db.signaturen ( user varchar(128) NOT NULL 
default '', inhalt text, PRIMARY KEY (user) ) TYPE=MyISAM;

CREATE TABLE $MS_db.language ( user varchar(255) NOT NULL 
default '', wert char(3) default NULL, PRIMARY KEY (user) ) 
TYPE=MyISAM;

CREATE TABLE $MS_db.quota ( domain varchar(255) NOT NULL default '', 
mailboxen int(11) default NULL, quota int(11) default NULL, 
PRIMARY KEY (domain) ) TYPE=MyISAM;

CREATE TABLE $MS_db.spammers ( user varchar(128) default NULL, 
addr varchar(128) default NULL ) TYPE=MyISAM;


";

open (FILE,">>$myauspfad") || die "Could not write to $myauspfad\n...bye";
  print FILE "$_query\n";
close (FILE);
print	"[NODE] Queries written to $myauspfad\n\n".
	"[DONE]\n".
	"------------------------------------------------------\n".
	"[TASK] Creating UMPL Xmail configuration: \n";
$XM_vars = "";

open (FILE5,">user_data.php") || die "Could not create user_data.php\n...bye";
  print FILE5 "$XM_vars";
close (FILE5);
print 	"\n[NODE] wrote UMPL Xmail conf to ./user_data.php\n";

print 	"[DONE]\n";


print "------------------------------------------------------\n";
print "[TASK] Creating directories: \n";
mach_dir("img", $selber);
mach_dir("inc", $selber);
mach_dir("root", $selber);
mach_dir("tmp", $selber);
mach_dir("autoreply", $selber);
mach_dir("root/img", $selber);
change_dir_777("tmp", $selber);
change_dir_777("autoreply", $selber);

print "[DONE]\n\n";
print "------------------------------------------------------\n";
print "[TASK] Copying PHP, HTML & image files: \n";
kopiere_neue_datei("banned_from.php", $selber);
kopiere_neue_datei("forward.php", $selber);
kopiere_neue_datei("header.php", $selber);
kopiere_neue_datei("inbox.php", $selber);
kopiere_neue_datei("index.php", $selber);
kopiere_neue_datei("kontakte.php", $selber);
kopiere_neue_datei("mail_forward.php",$selber);
kopiere_neue_datei("message.php", $selber);
kopiere_neue_datei("passwort.php",$selber);
kopiere_neue_datei("reply.php", $selber);
kopiere_neue_datei("root_aliases.php",  $selber);
kopiere_neue_datei("root_forward.php",  $selber);
kopiere_neue_datei("root_passwort.php", $selber);
kopiere_neue_datei("root_user.php", $selber);
kopiere_neue_datei("sendmail.php",  $selber);
kopiere_neue_datei("signatur.php",  $selber);
kopiere_neue_datei("uservars.php",  $selber);
kopiere_neue_datei("user_data.php", $selber);
kopiere_neue_datei("userreply.php", $selber);
kopiere_neue_datei("autoreply.sh", $selber);
change_mod_755("autoreply.sh", $selber);

kopiere_neue_datei("img/a.gif", $selber);
kopiere_neue_datei("img/add.gif", $selber);
kopiere_neue_datei("img/att.gif", $selber);
kopiere_neue_datei("img/block.gif", $selber);
kopiere_neue_datei("img/d.gif", $selber);
kopiere_neue_datei("img/exit.gif", $selber);
kopiere_neue_datei("img/hilfe.gif", $selber);
kopiere_neue_datei("img/info.gif", $selber);
kopiere_neue_datei("img/loeschen.gif", $selber);
kopiere_neue_datei("img/logo.gif", $selber);
kopiere_neue_datei("img/pop_nav_1.gif", $selber);
kopiere_neue_datei("img/pop_nav_2.gif", $selber);
kopiere_neue_datei("img/pop_nav_3.gif", $selber);
kopiere_neue_datei("img/pop_nav_4.gif", $selber);
kopiere_neue_datei("img/weiter.gif", $selber);
kopiere_neue_datei("img/zurueck.gif", $selber);



kopiere_neue_datei("inc/DecodeMessage.php", $selber);
kopiere_neue_datei("inc/class.php", $selber);
kopiere_neue_datei("inc/email_message.php",  $selber);
kopiere_neue_datei("inc/kontakte.class.php", $selber);
kopiere_neue_datei("inc/pop3.class.php",   $selber);
kopiere_neue_datei("inc/seite.class.php",  $selber);
kopiere_neue_datei("inc/signatur.class.php",  $selber);
kopiere_neue_datei("inc/hildegard.class.php", $selber);

kopiere_neue_datei("inc/language.de.php", $selber);
kopiere_neue_datei("inc/language.en.php", $selber);
kopiere_neue_datei("inc/language.it.php", $selber);
kopiere_neue_datei("inc/language.sp.php", $selber);
kopiere_neue_datei("inc/language.nl.php", $selber);
kopiere_neue_datei("inc/language.fr.php", $selber);
kopiere_neue_datei("inc/language.sl.php", $selber);
kopiere_neue_datei("inc/language.hu.php", $selber);
kopiere_neue_datei("inc/language.pl.php", $selber);
kopiere_neue_datei("inc/language.ru.php", $selber);
kopiere_neue_datei("inc/language.tr.php", $selber);
kopiere_neue_datei("inc/language.sv.php", $selber);

kopiere_neue_datei("img/froz_det.png", $selber);
kopiere_neue_datei("img/froz_subm.png", $selber);
kopiere_neue_datei("inc/language.tr.php", $selber);
kopiere_neue_datei("inc/credits.txt", $selber);
kopiere_neue_datei("root/root_frozlist.php", $selber);
kopiere_neue_datei("root/servervars.html", $selber);


kopiere_neue_datei("root/admin.php", $selber);
kopiere_neue_datei("root/aliasdom.php", $selber);
kopiere_neue_datei("root/class.php", $selber);
kopiere_neue_datei("root/index.php", $selber);
kopiere_neue_datei("root/seite.class.php", $selber);


kopiere_neue_datei("root/img/a.gif", $selber);
kopiere_neue_datei("root/img/d.gif", $selber);
kopiere_neue_datei("root/img/exit.gif", $selber);
kopiere_neue_datei("root/img/hilfe.gif", $selber);
kopiere_neue_datei("root/img/info.gif", $selber);
kopiere_neue_datei("root/img/loeschen.gif", $selber);
kopiere_neue_datei("root/img/logo.gif", $selber);
kopiere_neue_datei("root/img/weiter.gif", $selber);
kopiere_neue_datei("root/img/zurueck.gif", $selber);


kopiere_neue_datei("img/add_contact.gif", $selber);
kopiere_neue_datei("img/userreply_80_30.png", $selber);
kopiere_neue_datei("img/userreply_14_14.png", $selber);
kopiere_neue_datei("img/exit_14_14.png", $selber);
kopiere_neue_datei("img/forward_14_14.png", $selber);
kopiere_neue_datei("img/password_14_14.png", $selber);
kopiere_neue_datei("img/uservars_14_14.png", $selber);
kopiere_neue_datei("img/contacts_14_14.png", $selber);
kopiere_neue_datei("img/inbox_14_14.png", $selber);
kopiere_neue_datei("img/create_email_14_14.gif", $selber);
kopiere_neue_datei("img/create_email_80_30.gif", $selber);
kopiere_neue_datei("img/signatur_14.gif", $selber);
kopiere_neue_datei("img/block_14_14.gif", $selber);

kopiere_neue_datei("inc/language.gr.php", $selber);


print 	"[DONE]\n\n".
	"------------------------------------------------------\n".
	"Installation done Successfully!\n";

if($selber eq "No"){
	print "\n\n[NODE] enter '\$ mysql -uroot -p < $myauspfad' to finish the installation!";
} else {
	print 	"\n\n[NODE] enter '\$ sh $auspfad' AND \n".
		"'\$ mysql -uroot -p < $myauspfad' to \n".
		"finish the installation!";
}

print "\n\n";

print "[ATTENTION] Beginning with Version 2.10 autoreply.sh\n";
print "is bundled with umpl_xmail, which needs to know the\n";
print "correct MAIL_ROOT!\n";
print "If you don't have Mail_ROOT at /var/MailRoot/ please\n";
print "change it inside '$doc_root/autoreply.sh'.";
print "\n";

print "\n";
print "Thanks for using umpl for xmailserver!\n";
print "Check for updates: http://umpl.de/\n\n";