X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=bin%2FBackupPC_sendEmail;h=9131081358fefc75f7f331c1a68f1d249ee8c541;hp=21c0c93b98e8b054b74e7d612cdab9b4aa3203c3;hb=74dc9d456332757127d5eda4ce32f29377133fa2;hpb=1ce7d1541ea1279aaa0a75c16986a3fd40b608ec diff --git a/bin/BackupPC_sendEmail b/bin/BackupPC_sendEmail index 21c0c93..9131081 100755 --- a/bin/BackupPC_sendEmail +++ b/bin/BackupPC_sendEmail @@ -31,25 +31,27 @@ # #======================================================================== # -# Version 1.5.0, released 2 Aug 2002. +# Version 2.0.0beta3, released 1 Jun 2003. # # See http://backuppc.sourceforge.net. # #======================================================================== use strict; -use lib "__INSTALLDIR__/lib"; +use lib "/usr/local/BackupPC/lib"; use BackupPC::Lib; use BackupPC::FileZIO; use Data::Dumper; use Getopt::Std; use DirHandle (); +use vars qw($Lang $TopDir $BinDir %Conf); die("BackupPC::Lib->new failed\n") if ( !(my $bpc = BackupPC::Lib->new) ); -my $TopDir = $bpc->TopDir(); -my $BinDir = $bpc->BinDir(); -my %Conf = $bpc->Conf(); +$TopDir = $bpc->TopDir(); +$BinDir = $bpc->BinDir(); +%Conf = $bpc->Conf(); +$Lang = $bpc->Lang(); $bpc->ChildInit(); @@ -57,8 +59,7 @@ use vars qw(%UserEmailInfo); do "$TopDir/log/UserEmailInfo.pl"; my %opts; -getopts("t", \%opts); -if ( @ARGV != 0 ) { +if ( !getopts("t", \%opts) || @ARGV != 0 ) { print("usage: $0 [-t]\n"); exit(1); } @@ -170,8 +171,13 @@ foreach my $host ( sort(keys(%Status)) ) { my @Backups = $bpc->BackupInfoRead($host); my $numBackups = @Backups; if ( $numBackups == 0 ) { - my $subj = "BackupPC: no backups of $host have succeeded"; - sendUserEmail($user, $host, $Conf{EMailNoBackupEverMesg}, $subj, { + my $subj = defined($Conf{EMailNoBackupEverSubj}) + ? $Conf{EMailNoBackupEverSubj} + : $Lang->{EMailNoBackupEverSubj}; + my $mesg = defined($Conf{EMailNoBackupEverMesg}) + ? $Conf{EMailNoBackupEverMesg} + : $Lang->{EMailNoBackupEverMesg}; + sendUserEmail($user, $host, $mesg, $subj, { userName => user2name($user) }) if ( !defined($Jobs{$host}) ); next; @@ -222,11 +228,16 @@ foreach my $host ( sort(keys(%Status)) ) { } } if ( time - $last > $Conf{EMailNotifyOldBackupDays} * 24*3600 ) { - my $subj = "BackupPC: no recent backups on $host"; + my $subj = defined($Conf{EMailNoBackupRecentSubj}) + ? $Conf{EMailNoBackupRecentSubj} + : $Lang->{EMailNoBackupRecentSubj}; + my $mesg = defined($Conf{EMailNoBackupRecentMesg}) + ? $Conf{EMailNoBackupRecentMesg} + : $Lang->{EMailNoBackupRecentMesg}; my $firstTime = sprintf("%.1f", (time - $Backups[0]{startTime}) / (24*3600)); my $days = sprintf("%.1f", (time - $last) / (24 * 3600)); - sendUserEmail($user, $host, $Conf{EMailNoBackupRecentMesg}, $subj, { + sendUserEmail($user, $host, $mesg, $subj, { firstTime => $firstTime, days => $days, userName => user2name($user), @@ -239,22 +250,29 @@ foreach my $host ( sort(keys(%Status)) ) { * 24 * 3600 ) { my($days, $howLong); if ( $lastGoodOutlook == 0 ) { - $howLong = "not been backed up successfully"; + $howLong = eval("qq{$Lang->{howLong_not_been_backed_up}}"); } else { $days = sprintf("%.1f", (time - $lastGoodOutlook) / (24*3600)); - $howLong = "not been backed up for $days days"; + $howLong = eval("qq{$Lang->{howLong_not_been_backed_up_for_days_days}}"); } - my $subj = "BackupPC: Outlook files on $host need to be backed up"; + my $subj = defined($Conf{EMailOutlookBackupSubj}) + ? $Conf{EMailOutlookBackupSubj} + : $Lang->{EMailOutlookBackupSubj}; + my $mesg = defined($Conf{EMailOutlookBackupMesg}) + ? $Conf{EMailOutlookBackupMesg} + : $Lang->{EMailOutlookBackupMesg}; my $firstTime = sprintf("%.1f", (time - $Backups[0]{startTime}) / (24*3600)); my $lastTime = sprintf("%.1f", (time - $Backups[$#Backups]{startTime}) / (24*3600)); - sendUserEmail($user, $host, $Conf{EMailOutlookBackupMesg}, $subj, { + sendUserEmail($user, $host, $mesg, $subj, { + days => $days, firstTime => $firstTime, lastTime => $lastTime, numBackups => $numBackups, userName => user2name($user), howLong => $howLong, + serverHost => $Conf{ServerHost}, }) if ( !defined($Jobs{$host}) ); } } @@ -263,7 +281,7 @@ if ( !$opts{t} ) { my $dumpStr = Data::Dumper->Dump( [\%UserEmailInfo], [qw(*UserEmailInfo)]); - if ( open(HOST, ">$TopDir/log/UserEmailInfo.pl") ) { + if ( open(HOST, ">", "$TopDir/log/UserEmailInfo.pl") ) { print(HOST $dumpStr); close(HOST); } @@ -281,10 +299,13 @@ sub user2name sub sendUserEmail { my($user, $host, $mesg, $subj, $vars) = @_; - $vars->{user} = $user; - $vars->{host} = $host; - $vars->{subj} = $subj; - $mesg =~ s/\$(\w+)/defined($vars->{$1}) ? $vars->{$1} : \$$1/eg; + $vars->{user} = $user; + $vars->{host} = $host; + $vars->{domain} = $Conf{EMailUserDestDomain}; + $vars->{CgiURL} = $Conf{CgiURL}; + $subj =~ s/\$(\w+)/defined($vars->{$1}) ? $vars->{$1} : "\$$1"/eg; + $vars->{subj} = $subj; + $mesg =~ s/\$(\w+)/defined($vars->{$1}) ? $vars->{$1} : "\$$1"/eg; if ( $opts{t} ) { print("#" x 75, "\n"); print $mesg;