#!/usr/bin/perl use lib '/home/bbs/bin/'; use LocalVars; use strict; use Mail::Sender; use POSIX; no strict 'subs'; setpriority(PRIO_PROCESS, $$, 20); use strict subs; chdir $BBSHOME; open LOG, ">> log/tarqueue.log"; foreach my $board ( <$JOBSPOOL/tarqueue.*> ){ $board =~ s/.*tarqueue\.//; ProcessBoard($board); unlink "$JOBSPOOL/tarqueue.$board"; } close DIR; close LOG; sub ProcessBoard { my($board)= @_; my($cmd, $owner, $email, $bakboard, $bakman, $now); $now = substr(POSIX::ctime(time()), 0, -1); open FH, "< $JOBSPOOL/tarqueue.$board"; chomp($owner = <FH>); chomp($email = <FH>); chomp(($bakboard, $bakman) = split(/,/, <FH>)); close FH; print LOG sprintf("%-28s %-12s %-12s %d %d %s\n", $now, $owner, $board, $bakboard, $bakman, $email); MakeMail({tartarget => "$TMP/$board.tgz", tarsource => "boards/". substr($board, 0, 1). "/$board", mailto => "$board�����D$owner <$email>", subject => "$board���ݪ��ƥ�", body => "\n\n\t $owner �z�n�A����o�ʫH�A���ܱz�w�g����ݪO�ƥ��C\n\n". "\t���±z���@�ߵ��ݡA�H�Ψϥ� $hostname���ݪO�ƥ��t�ΡA\n\n". "\t�p������ðݡA�w��H�H�������A�ڭ̷|�ܼ֩���U�C\n\n\n". "\t�̫�A�� $owner ���w�ּ֡I ^_^\n\n\n". "\t $hostname�����s. \n\t$now" }) if( $bakboard ); MakeMail({tartarget => "$TMP/man.$board.tgz", tarsource => "man/boards/". substr($board, 0, 1). "/$board", mailto => "$board�����D$owner <$email>", subject => "$board����ذϳƥ�", body => "\n\n\t $owner �z�n�A����o�ʫH�A���ܱz�w�g�����ذϳƥ��C\n\n". "\t���±z���@�ߵ��ݡA�H�Ψϥ� $hostname���ݪO�ƥ��t�ΡA\n\n". "\t�p������ðݡA�w��H�H�������A�ڭ̷|�ܼ֩���U�C\n\n\n". "\t�̫�A�� $owner ���w�ּ֡I ^_^\n\n\n". "\t $hostname�����s. \n\t$now" }) if( $bakman ); } sub MakeMail { my($arg) = @_; my $sender; `$TAR zcf $arg->{tartarget} $arg->{tarsource}`; $sender = new Mail::Sender{smtp => $SMTPSERVER, from => 'pttadmin <in2@ptt2.csie.ntu.edu.tw>'}; $sender->MailFile({to => $arg->{mailto}, subject => $arg->{subject}, msg => $arg->{body}, file => $arg->{tartarget}}); unlink $arg->{tartarget}; }