OnCreateAutoReplyException

From Request Tracker Wiki
Revision as of 16:15, 6 April 2016 by Admin (talk | contribs) (3 revisions imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Purpose: We have emails coming in from automated systems and we don't want emails going out. While we are using this on the Create - AutoReply scrip it can used on any other scrip where you want to create an exception list.

Author: macnlos AT gmail DOT com - I'm on the RT Users List

Description: Autoreply on Create with Exceptions

Condition: User Defined

Action: Autoreply to Requestors

Template: Global template: Autoreply

State: TransactionCreate

Custom Condition:

my @exceptionList = ('joe@goblow.com',
                     'fred@quarry.com',
                     'scooby@mysterymachine.com');

my $transactionType = $self->TransactionObj->Type;
my $ticketRequestor = lc($self->TicketObj->RequestorAddresses);

if ($transactionType eq 'Create') {
  return if grep { $ticketRequestor eq lc($_) } @exceptionList;
  return 1;
}
return;

Code Explanation: We want to test if the transaction type is "Create" and the email address of the requestor is not in the exception list. The variable "exceptionList" is where you can add the email addresses you want to exclude.

The first IF statement tests to see if this is a "Create" action and if it is it then proceeds. Otherwise it skips everything and just returns which is the equivalent of saying false.

The grep processes the exceptionList array and compares it to the requestor email address of the ticket. If it finds a match then it simply returns. If it goes through the entire array without a match then you want to send an email so it returns 1.

The "lc" functions in the script makes sure that everything is switched to lower-case to prevent "YOU@there" eq "you@THERE" from returning false.