Email access to existing tickets

Hello list!

I’ve just configured my first RT setup (3.4.4) and setup the mail
gateway. Yay! It is amazing and exactly what I needed to handle
incoming support requests :slight_smile:

I’ve configured my RT so that previously unknown customers can email my
support address and a new ticket will be generated for them.

I didn’t want them to be able to fiddle with other customers tickets
though (by changing the number in the Subject: header), so I set up the
following global group rights:

System group “Everyone” can “CreateTicket”
System group “Everyone” can “SeeQueue”
Role “Cc” can “ReplyToTicket”
Role “Requestor” can “ReplyToTicket”

as well as:

User defined group “Qube Employees” can do almost everything!
User defined group “Qube RT Admins” can do everything!

This is great: existing customers can correspond on existing tickets,
but only if their “From” matches the “Requestor”.

However, I have the inevitable problem that customers try to email about
an existing ticket using a different email address to the one they
original wrote in with. (e.g. they write in with their home address,
but followup with their work address.)

When they do so, they get a reply to their followup-email saying
“Permission Denied”, and their corrspondence is not added to the ticket.

I’d much prefer it if these emails could end up in a queue somewhere
where they could be manually inspected, with the aim to adding the
second address in as a “Cc” on the original ticket[1].

Could I implement such functionality myself? As a Scrip, or by patching
the source? Or maybe there’s a non-patching way of writing this in
Perl? Advice would be most gratefully received :slight_smile:

Thanks :slight_smile:

Ed

Edward Speyer

[1] It would be quite nice actually if users in the ACL system could
have more than one email address assigned to them, so that Joe Bloggs
could write in with either joe.bloggs@work.com or jbloggs@gmail.com, but
that’s more of a feature request :slight_smile:

Just as an update on my problem, I’ve done two things:

  • Given “Everyone” the right to “ReplyToTicket” again, meaning that
    naughty customers can theoretically correspond on other customers
    tickets even though they aren’t Requestors on those tickets…

  • …except that I also have the following “On Correspond” Scrip:

    my $creator = $self->TransactionObj->CreatorObj;

    if ($self->TicketObj->Requestors->HasMember($creator->PrincipalObj)) {
    return 1;
    }
    else {
    my $new_ticket = RT::Ticket->new($RT::SystemUser);
    $new_ticket->Create(
    Queue => ‘References’,
    Requestor => [ $creator->EmailAddress ],
    Subject => ‘Reference ticket’
    );
    return 1;
    }

To finish my Scrip, I need to do the following things:

  • add the original Transaction ($self->TransactionObj) to $new_ticket,
    somehow.

  • stop the original Transaction from being added to the original
    ticket ($self->TicketObj).

Is that possible?

Ed

ps: many thanks to jibsheet on #rt for suggesting “RT-Extension-MergeUsers”:

README - metacpan.org

which will be able to mash two users together as one in the DB –
something I’ll need if I see that one user is using two email addresses
:slight_smile:

Edward Speyer