summaryrefslogtreecommitdiff
path: root/rt/sbin/rt-email-digest.in
diff options
context:
space:
mode:
Diffstat (limited to 'rt/sbin/rt-email-digest.in')
-rw-r--r--rt/sbin/rt-email-digest.in35
1 files changed, 14 insertions, 21 deletions
diff --git a/rt/sbin/rt-email-digest.in b/rt/sbin/rt-email-digest.in
index 50e130a..8dade94 100644
--- a/rt/sbin/rt-email-digest.in
+++ b/rt/sbin/rt-email-digest.in
@@ -49,23 +49,15 @@
use warnings;
use strict;
-BEGIN {
+BEGIN { # BEGIN RT CMD BOILERPLATE
require File::Spec;
+ require Cwd;
my @libs = ("@RT_LIB_PATH@", "@LOCAL_LIB_PATH@");
my $bin_path;
for my $lib (@libs) {
unless ( File::Spec->file_name_is_absolute($lib) ) {
- unless ($bin_path) {
- if ( File::Spec->file_name_is_absolute(__FILE__) ) {
- $bin_path = ( File::Spec->splitpath(__FILE__) )[1];
- }
- else {
- require FindBin;
- no warnings "once";
- $bin_path = $FindBin::Bin;
- }
- }
+ $bin_path ||= ( File::Spec->splitpath(Cwd::abs_path(__FILE__)) )[1];
$lib = File::Spec->catfile( $bin_path, File::Spec->updir, $lib );
}
unshift @INC, $lib;
@@ -76,10 +68,9 @@ BEGIN {
use Date::Format qw( strftime );
use Getopt::Long;
use RT;
-use RT::Interface::CLI qw( CleanEnv loc );
+use RT::Interface::CLI qw( loc );
use RT::Interface::Email;
-CleanEnv();
RT::LoadConfig();
RT::Init();
@@ -268,7 +259,7 @@ sub find_transactions {
my $queue = $txn->TicketObj->QueueObj->Name;
# Xxx todo - may clobber if two queues have the same name
foreach my $user ( $txn->DeferredRecipients($frequency) ) {
- $all_digest->{$user}->{$queue}->{$ticket}->{ $txn->id } = $txn->ContentObj;
+ $all_digest->{$user}->{$queue}->{$ticket}->{ $txn->id } = $txn;
$sent_transactions->{$user}->{ $txn->id } = $txn;
}
}
@@ -312,12 +303,14 @@ sub build_digest_for_user {
# Spit out the messages for the transactions on this ticket.
$contents_body .= "\n== $ticket_title\n";
foreach my $txn ( sort keys %$tkt_txns ) {
- my $msg = $tkt_txns->{$txn};
-
- # $msg contains an RT::Attachment with our outgoing
- # message. Print a few headers for clarity's sake.
- $contents_body .= "From: " . $msg->GetHeader('From') . "\n";
- my $date = $msg->GetHeader('Date ');
+ my $top = $tkt_txns->{$txn}->Attachments->First;
+
+ # $top contains the top-most RT::Attachment with our
+ # outgoing message. It may not be the MIME part with
+ # the content. Print a few headers from it for
+ # clarity's sake.
+ $contents_body .= "From: " . $top->GetHeader('From') . "\n";
+ my $date = $top->GetHeader('Date ');
unless ($date) {
my $txn_obj = RT::Transaction->new( RT->SystemUser );
$txn_obj->Load($txn);
@@ -330,7 +323,7 @@ sub build_digest_for_user {
@{ [ localtime( $date_obj->Unix ) ] } );
}
$contents_body .= "Date: $date\n\n";
- $contents_body .= $msg->Content . "\n";
+ $contents_body .= $tkt_txns->{$txn}->ContentObj->Content . "\n";
$contents_body .= "-------\n";
} # foreach transaction
} # foreach ticket