Scrip works on tickets created via RT web interface but not via e-mail

Hi everyone, I’m trying to create a scrip that parses incoming e-mails and
rejects tickets with a certain phrase. I’ve got the scrip to work on all
tickets created in the queue via the RT web interface, but emails that come
into that queue still make it through. Does anybody know what I could be
missing that would cause it to work on tickets created via the web
interface, but not tickets created via e-mail?
Here’s what I’ve got in the scrip:
Condition: User Defined
Action: User Defined
Template: Global template: Blank
Stage: TransactionCreate

Custom Condition:
my $Ticket = $self->TicketObj; my $Transaction = $self->TransactionObj; my
$Attachment = $Transaction->Attachments; my $AttFirst = $Attachment->First;
my $Content = $AttFirst->Content; my $test = 0; $test = 1 if (lc($Content)
=~ m/the caller hung up before leaving a message/i); if($test == 1) { return
1; } return;

Custom Action Prep:
$self->TicketObj->SetStatus( “rejected” ); return 1;

Custom Action Cleanup:
return 1;

I greatly appreciate any help, thanks!

-Steve

I think I figured it out! Because Phonetag still attaches a .wav file, the
body of the e-mail is not the first attachment, which is what my scrip was
looking for.
I don’t know how to re-write that part but I’m digging through info now to
find out. Of course if anyone can expedite that for me I would appreciate
it, but hopefully this helps anyone who wants to do something similar :slight_smile:

Hi everyone, I’m trying to create a scrip that parses incoming e-mails and
rejects tickets with a certain phrase. I’ve got the scrip to work on all
tickets created in the queue via the RT web interface, but emails that come
into that queue still make it through. Does anybody know what I could be
missing that would cause it to work on tickets created via the web
interface, but not tickets created via e-mail?
Here’s what I’ve got in the scrip:

Condition: User Defined
Action: User Defined
Template: Global template: Blank
Stage: TransactionCreate

Custom Condition:
my $Ticket = $self->TicketObj; my $Transaction = $self->TransactionObj; my
$Attachment = $Transaction->Attachments; my $AttFirst = $Attachment->First;
my $Content = $AttFirst->Content; my $test = 0; $test = 1 if (lc($Content)
=~ m/the caller hung up before leaving a message/i); if($test == 1) { return
1; } return;

Custom Action Prep:
$self->TicketObj->SetStatus( “rejected” ); return 1;

Custom Action Cleanup:
return 1;

I greatly appreciate any help, thanks!

-Steve

Solved the problem, here is the custom condition I finally ended up with
(borrowed liberally from other people’s examples!)
my $attachs = $self->TransactionObj->Attachments;
my $attach;
while( my $a = $attachs->Next ) { if( $a->ContentType eq ‘text/plain’ ){
$attach = $a; last } }
my $content = $attach->Content;
my $test = 0;
$test = 1 if ($content =~ m/We’re sorry, the caller hung up/i); if($test ==

  1. { return 1; }
    return;

Hope someone finds this helpful!

-SteveOn Tue, Dec 2, 2008 at 10:07 AM, Steve Hopps steve.hopps@gmail.com wrote:

I think I figured it out! Because Phonetag still attaches a .wav file, the
body of the e-mail is not the first attachment, which is what my scrip was
looking for.
I don’t know how to re-write that part but I’m digging through info now to
find out. Of course if anyone can expedite that for me I would appreciate
it, but hopefully this helps anyone who wants to do something similar :slight_smile:

  • Steve

On Mon, Dec 1, 2008 at 10:51 AM, Steve Hopps steve.hopps@gmail.comwrote:

Hi everyone, I’m trying to create a scrip that parses incoming e-mails and
rejects tickets with a certain phrase. I’ve got the scrip to work on all
tickets created in the queue via the RT web interface, but emails that come
into that queue still make it through. Does anybody know what I could be
missing that would cause it to work on tickets created via the web
interface, but not tickets created via e-mail?
Here’s what I’ve got in the scrip:

Condition: User Defined
Action: User Defined
Template: Global template: Blank
Stage: TransactionCreate

Custom Condition:
my $Ticket = $self->TicketObj; my $Transaction = $self->TransactionObj; my
$Attachment = $Transaction->Attachments; my $AttFirst = $Attachment->First;
my $Content = $AttFirst->Content; my $test = 0; $test = 1 if (lc($Content)
=~ m/the caller hung up before leaving a message/i); if($test == 1) { return
1; } return;

Custom Action Prep:
$self->TicketObj->SetStatus( “rejected” ); return 1;

Custom Action Cleanup:
return 1;

I greatly appreciate any help, thanks!

-Steve