We have a queue set up called ‘Limbo’, to hold tickets that either fail an
SA check, or don’t match any of our procmail recipes. Because of the nature
of the queue, we don’t care to be notified with the /body/ of the requesting
e-mail message, rather, we’d prefer to see the headers.
Right now, our template is $Transaction->Content(), but that gives us the
body. Is there any way to pull the headers from a transaction object?
Thanks.
Right now, our template is $Transaction->Content(), but that gives us the
body. Is there any way to pull the headers from a transaction object?
Well, you could use $Transaction->Message->First->Headers() , but thats a
bit of a mouthful, and doesn’t give you other nice options.
The following can be added to lib/RT/Transaction.pm, and will let you
sauce your Templates to your preferred taste with $Transaction->Headers(),
$Transaction->Headers( Prefix => '> ’ ), or $Transaction->Headers( Quote
=> ‘1’, Wrap => ‘76’, Prefix => ': ’ ).
( Note, this code is a 5 minute hack, and may require slight adjustment
for use )
Bruce Campbell RIPE
Systems/Network Engineer NCC
www.ripe.net - PGP562C8B1B Operations/Security
To be added to Transaction.pm
Mostly same usage as RT::Transaction->Content()
Takes a paramhash. If the $args{‘Quote’} parameter is set, wraps this
message at $args{‘Wrap’}. $args{‘Wrap’} defaults to 70.
If $args{‘Prefix’} is set, prefixes each line with this sequence (ie, use
'> ’ if thats what you want).
sub Headers () {
my $self = shift;
my %args = ( Quote => 0,
Wrap => 70,
Prefix => undef,
@_ );
my $headers = undef;
# The headers of the messages are in the first attachment.
if( defined( $self->Message->First ) ){
# Assign it.
$headers = $self->Message->First->Headers;
}
# If we have to do anything.
if( $args{"Quote"} ne "0" && defined( $headers ) && defined( $args{"Wrap"} ) ){
# Run it through Text::Wrapper
require Text::Wrapper;
my $columns = $args{"Wrap"};
# Adjust for the prefix.
if( defined( $args{"Prefix"} ) ){
$columns = $columns - length( $args{"Prefix"} );
}
# Wrap it.
my $wrapper = new Text::Wrapper(
columns => $args{"Wrap"},
body_start => " ",
);
$headers = $wrapper->wrap( $headers );
}
# If we have to prefix stuff.
if( defined( $args{"Prefix"} ) && defined( $headers ) ){
my @tsplit = split( /\n/, $headers );
$headers = undef;
# Reassemble it with the Prefix.
foreach my $poppy( @tsplit ){
$headers .= $args{"Prefix"} . $poppy . "\n";
}
}
# return whatever we found.
return( $headers );
}