diff options
author | jeff <jeff> | 2002-03-07 19:50:24 +0000 |
---|---|---|
committer | jeff <jeff> | 2002-03-07 19:50:24 +0000 |
commit | 3e2e5fecb9ef3cf39a6ac098aacb76763edd3938 (patch) | |
tree | 4ccc664fc14c2624d4abb9777cebd50e8d525e22 /FS/bin/freeside-cc-receipts-report | |
parent | 64ed7b8c527bcf3e689a3f61fcdb8b4185460936 (diff) |
less shelling, more perly - abolish some pipes to sendmail
Diffstat (limited to 'FS/bin/freeside-cc-receipts-report')
-rwxr-xr-x | FS/bin/freeside-cc-receipts-report | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/FS/bin/freeside-cc-receipts-report b/FS/bin/freeside-cc-receipts-report index 48075a888..06e3aba81 100755 --- a/FS/bin/freeside-cc-receipts-report +++ b/FS/bin/freeside-cc-receipts-report @@ -6,17 +6,18 @@ use Date::Parse; use Time::Local; use Getopt::Std; use Text::Template; +use Net::SMTP; +use Mail::Header; +use Mail::Internet; use FS::Conf; use FS::UID qw(adminsuidsetup); use FS::Record qw(qsearch qsearchs); use FS::cust_pay; use FS::cust_pay_batch; -# Set the mail program -my $mail_program = "/usr/sbin/sendmail -t -n"; &untaint_argv; #what it sounds like (eww) -use vars qw($opt_v $opt_p $opt_m $opt_e $opt_t $opt_s $opt_f $report_lines $report_template @buf); +use vars qw($opt_v $opt_p $opt_m $opt_e $opt_t $opt_s $opt_f $report_lines $report_template @buf $header); getopts("vpmef:s:"); #switches #we're at now now (and later). @@ -43,6 +44,9 @@ adminsuidsetup $user; my $conf = new FS::Conf; my $lpr = $conf->config('lpr'); my $email = $conf->config('email'); +my $smtpmachine = $conf->config('smtpmachine'); +my $mail_sender = $conf->exists('invoice_from') ? $conf->config('invoice_from') : + 'postmaster'; my @report_template = $conf->config('report_template') or die "cannot load config file report_template"; $report_lines = 0; @@ -74,14 +78,14 @@ if ($lpr && $main::opt_p) if ($email && $main::opt_m) { - open (MAIL, "|$mail_program"); - print MAIL <<END -To: $email -From: Account Processor -Subject: Receivables - - -END + $ENV{MAILADDRESS} = $mail_sender; + $header = new Mail::Header ( [ + "From: Account Processor", + "To: $email", + "Sender: $mail_sender", + "Reply-To: $mail_sender", + "Subject: Credit Card Receipts", + ] ); } my $uninvoiced = 0; @@ -189,8 +193,13 @@ if($lpr && $opt_p) } if($email && $opt_m) { - print MAIL map "$_\n", @report; - close MAIL || die "Could not close printer: $email\n"; + my $message = new Mail::Internet ( + 'Header' => $header, + 'Body' => [ (@report) ], + ); + $!=0; + $message->smtpsend( Host => "$smtpmachine" ) + or die "can't send report to $email via $smtpmachine: $!"; } @@ -236,7 +245,7 @@ user: From the mapsecrets file - see config.html from the base documentation =head1 VERSION -$Id: freeside-cc-receipts-report,v 1.3 2002-03-06 00:17:32 ivan Exp $ +$Id: freeside-cc-receipts-report,v 1.4 2002-03-07 19:50:23 jeff Exp $ =head1 BUGS |