[rt-users] email subject manipulation

Niels Bakker niels=rt at bakker.net
Tue Aug 10 12:14:03 EDT 2004

* dimitry.faynerman at hypermediasystems.com (Dimitry Faynerman) [Tue 10 Aug 2004, 17:58 CEST]:
>>> I need to catch an email before ticket is created, and if the email
>>> subject contains a special substring, like "[closed]", I need to remove
>>> it. So when the ticket is created and emails are sent to requestors,
>>> watchers, etc the email subject wouldn't have this substring.
> Thanks, but is it possible to do that in RT 3.0.9?
> We cannot migrate to 3.2 now

I did this myself by hacking rt-mailgate up a bit, making it read the
headers first into a Mail::Header object, doing the dirty work and only
then passing it on to LWP::UserAgent.

As a start, remove this bit of code:
undef $/;

and further on, replace this:
# Read the message in from STDIN
$args{'message'} = <>;

with something along the lines of this code:
my $hdr = new Mail::Header(\*STDIN, Modify => 0, MailFrom => "KEEP");

undef $/;
my $body = <>;

my $subject = $hdr->get('Subject',0);
if (defined $subject) {
	chomp $subject;

	# do your evil stuff with $subject here, such as...
	$subject =~ s/\[closed\]\s*//g;

	$hdr->replace('Subject', $subject,0);

# ... ready to feed it to RT
$args{'message'} = $hdr->as_string . "\n" . $body;


	-- Niels.


More information about the rt-users mailing list