[rt-users] Resolve when ticket is from a certain email address

Kevin Fox root.kev at gmail.com
Mon Aug 29 12:28:28 EDT 2011


Hi All,

I am trying to get our old RT (3.4.5) to resolve tickets when a user
replies, but am having some issues.

The basic setup is this: external user emails to the help desk email which
sends it to the helpdesk queue email and to a single customer facing user.
That user refuses to user RT, so when he replies to the email he does a
reply all (to both the customer and RT).  RT is setup to merge tickets with
similar names (RE:/FW:) so his response is merged to the original ticket,
but when I attempt to get a scrip to resolve the ticket when the email is
from this user it doesn't work as I want.  Currently it will resolve the
ticket, no matter who replys, which is definitely a no-no.

I figure that the issue is my comparison of the $val to the email address.
I had this as well and it didn't work either: /*resolveuseremail*\@
domain.com/g

If someone could help me out I would greatly appreciate it.  Below is the
scrip as it currently sits, except for the time being the resolve by user
part is commented out.

Thanks,

Kevin
-----------------------------

my $notnagios_desc = undef;
my $same_desc = undef;
my $Transaction = $self->TransactionObj;
my $subject = $Transaction->Attachments->First->GetHeader('Subject');
my $val = ($self->TicketObj->Requestors->MemberEmailAddressesAsString);

if (($subject =~ m/^RE:/i) || ( $subject =~ m/^FW:/i )) {
    $notnagios_desc=substr($subject,4);
    if (($notnagios_desc =~ m/^FW:/i) || ($notnagios_desc =~ m/^RE:/i )) {
          $notnagios_desc=substr($notnagios_desc,4);
          if (($notnagios_desc =~ m/^FW:/i) || ($notnagios_desc =~ m/^RE:/i
)) {
              $notnagios_desc=substr($notnagios_desc,4);
          }
      }
} else {
 $notnagios_desc=$subject;
 }

# look for same subject on existing tickets
my $search = RT::Tickets->new($RT::SystemUser);
$search->LimitQueue(VALUE => 'HelpDesk');
$search->LimitStatus(VALUE => 'new', OPERATOR => '=', ENTRYAGGREGATOR =>
'or');
$search->LimitStatus(VALUE => 'open', OPERATOR => '=');

if ($search->Count == 0) { return 1; }
my $id = undef;
while (my $ticket = $search->Next) {
 # Ignore this ticket that opened this transaction
   next if $self->TicketObj->Id == $ticket->Id;
   $same_desc=$ticket->Subject;
    if (($same_desc =~ m/^FW:/i) || ($same_desc =~ m/^RE:/i )) {
      $same_desc=substr($same_desc,4);
      if (($same_desc =~ m/^FW:/i) || ($same_desc =~ m/^RE:/i )) {
          $same_desc=substr($same_desc,4);
          if (($same_desc =~ m/^FW:/i) || ($same_desc =~ m/^RE:/i )) {
              $same_desc=substr($same_desc,4);
          }
      }
   }

   if ($notnagios_desc eq $same_desc) {
        # Found the same subject
        $id = $ticket->Id;
         $self->TicketObj->MergeInto($id);
      }
  }

if ($val == 'resolveuseremail at domain.com') {
## Set Set owner to e-mail sender, status to 'resolved'
my $Ticket = $self->TicketObj;
my $Transaction = $self->TransactionObj;
my $CreatorId = $Transaction->CreatorObj->Id;
$Ticket->SetOwner($CreatorId);
$Ticket->SetStatus('resolved');
}

$id || return 1;
1;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20110829/8f864aa7/attachment.htm>


More information about the rt-users mailing list