X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=bin%2FBackupPC_sendEmail;h=5c33fae934bd423d49bdffe25fe0327f6214c2c9;hp=8357bdcb815fb0f903de199a1b0510aaef4c9bfa;hb=31a7aca27ffd75e0aee9836704599cdb95dc2421;hpb=5b3e6091d542c2e7445d5dd511cdf6e20aec8b8d diff --git a/bin/BackupPC_sendEmail b/bin/BackupPC_sendEmail index 8357bdc..5c33fae 100755 --- a/bin/BackupPC_sendEmail +++ b/bin/BackupPC_sendEmail @@ -31,7 +31,7 @@ # #======================================================================== # -# Version 3.0.0alpha, released 23 Jan 2006. +# Version 3.0.0beta2, released 11 Nov 2006. # # See http://backuppc.sourceforge.net. # @@ -61,21 +61,65 @@ use vars qw(%UserEmailInfo); do "$LogDir/UserEmailInfo.pl"; my %opts; -if ( !getopts("t", \%opts) || @ARGV != 0 ) { - print("usage: $0 [-t]\n"); +if ( !getopts("ctu:", \%opts) || @ARGV != 0 ) { + print <ServerConnect($Conf{ServerHost}, $Conf{ServerPort}); if ( $err ) { + if ( $opts{c} && $Conf{EMailAdminUserName} ne "" ) { + my $headers = $Conf{EMailHeaders}; + $headers .= "\n" if ( $headers !~ /\n$/ ); + my $mesg = <ServerMesg("status hosts"); $reply = $1 if ( $reply =~ /(.*)/s ); my(%Status, %Info, %Jobs, @BgQueue, @UserQueue, @CmdQueue); eval($reply); +########################################################################### +# Generate test message if required +########################################################################### +if ( $opts{u} ne "" ) { + my $headers = $Conf{EMailHeaders}; + $headers .= "\n" if ( $headers !~ /\n$/ ); + my $mesg = < only fulls and incrs should be used + # in figuring out when the last good backup was + # + next if ( $Backups[$i]{type} eq "partial" ); $lastNum = $Backups[$i]{num} if ( $lastNum < $Backups[$i]{num} ); if ( $Backups[$i]{type} eq "full" ) { $lastFull = $Backups[$i]{startTime} @@ -315,12 +359,7 @@ sub sendUserEmail $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; - } else { - SendMail($mesg); - } + SendMail($mesg); $UserEmailInfo{$user}{lastTime} = time; $UserEmailInfo{$user}{lastSubj} = $subj; $UserEmailInfo{$user}{lastHost} = $host; @@ -329,14 +368,25 @@ sub sendUserEmail sub SendMail { my($mesg) = @_; - my($from) = $Conf{EMailFromUserName}; + my $from = $Conf{EMailFromUserName}; + my $utf8 = 1 + if ( $Conf{EMailHeaders} =~ /Content-Type:.*charset="utf-?8"/i ); local(*MAIL); + if ( $opts{t} ) { + binmode(STDOUT, ":utf8") if ( $utf8 ); + print("#" x 75, "\n"); + print $mesg; + return; + } $from = "-f $from" if ( $from ne "" ); + print("Sending test email using $Conf{SendmailPath} -t $from\n") + if ( $opts{u} ne "" ); if ( !open(MAIL, "|$Conf{SendmailPath} -t $from") ) { printf("Can't run sendmail ($Conf{SendmailPath}): $!\n"); return; } + binmode(MAIL, ":utf8") if ( $utf8 ); print MAIL $mesg; close(MAIL); }