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 = "
# LANGUAGE OF DIALOGS ( de, en, sp, fr, it, nl, sl, hu, tr, ru, sv, ar, gr)
\$DISP_LANGUAGE='en';
\n# XMAIL-SERVER-DATA
\n# Hostname of your xmailserver
\$XM_server = 'localhost';
\n# IP-Addr of your xmailserver
\$XM_ip = '127.0.0.01';
\n# Admin-Port of your xmailserver
\$XM_port = '6017';
\n# Admin-User of your xmailserver AND of /root/!!!
\$XM_user = 'umplxmail';
\n# Admin-PW of your xmailserver AND of /root/!!!
\$XM_passwrd = '$XM_pw';
\n\n# MYSQL-SERVER-DATA
\n# MySQL-Host (name or ip)
\$MS_server = 'localhost';
\n# MySQL-User
\$MS_user = '$MS_user';
\n# MySQL-User-Password
\$MS_passwrd = '$MS_pw'; # by default the created user can only log in from localhost !
\n# MySQL Database
\$MS_db = '$MS_db';
\n\n?>";
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";