Creating tickets from email without creating new users but still able to reply to originating address

I’ve looked extensively through the mailing list archives and searched
google but I feel like I have not found a definitive answer for what
it is I want to do.

We have an old instance of RT (2.0.14) that creates tickets when
customers send email and this has resulted in over 400,000 user
records in the system. Tickets containing spam are deleted by the
staff each morning, but of course the user records for those messages
still remain. Some analysis of the system showed that even with the
spam users removed there are still nearly 170,000 ‘legit’ user
records.

I am now setting up a new instance of RT (3.6) with spam filtering in
front of it, but I still do not wish to have so many users in the
system - it slows things down greatly and since they do not need any
privileges I am hoping I can forgo creating accounts entirely.

I wish to set it up so it works as follows:

  1. If an email is from an email address that matches an existing
    user that exists in RT, a ticket is created with that user as the
    requestor.
  2. If an email is from an email address that does not match any
    user, a ticket is created with a special ‘email user’ as the requestor
  3. When someone replies to a ticket created via email as per #2 the
    reply is sent to the original email address but still does not create
    a user in RT.

It seems at least one other person has tried to set up something
similar: Carbon60: Cloud Consulting - Services and Solutions

If this is just impossible or would take a foolish amount to do,
please let me know. However if someone out there has done this or
knows how I would be greatly obliged!

– Steve Scaffidi stephen@scaffidi.net

  1. If an email is from an email address that matches an existing
    user that exists in RT, a ticket is created with that user as the
    requestor.
    Out of the box.
  1. If an email is from an email address that does not match any
    user, a ticket is created with a special ‘email user’ as the requestor
    Doable with a custom Interface::Email extension
  1. When someone replies to a ticket created via email as per #2 the
    reply is sent to the original email address but still does not create
    a user in RT.
    That will be tougher since AFAIK RT uses the user to fill in the message
    template. You could try stashing the actual recipient in another header
    (though RT seems to discard any it does not need), or another table,
    and pull it out in your template code to set the actual recipient header.

Cambridge Energy Alliance: Save money. Save the planet.

  1. If an email is from an email address that does not match any
    user, a ticket is created with a special ‘email user’ as the requestor
    Doable with a custom Interface::Email extension

That’s one of the things I was looking at. I’ll see what I can cook up :slight_smile:

  1. When someone replies to a ticket created via email as per #2 the
    reply is sent to the original email address but still does not create
    a user in RT.
    That will be tougher since AFAIK RT uses the user to fill in the message
    template. You could try stashing the actual recipient in another header
    (though RT seems to discard any it does not need), or another table,
    and pull it out in your template code to set the actual recipient header.

I had a bit of a brain-storm (drizzle?) just after I hit send on my
initial message and realized I could probably populate a CustomField
with the original email address on ticket creation. Then, when we
reply/correspond on that ticket perhaps a Scrip can extract that
address from the field and add it to the To: field of any emails sent.
Alternatively, getting that value from a template may be easier.

Thanks for your input, and I’ll certainly welcome any further tips
from the list!
– Steve Scaffidi stephen@scaffidi.net

I now have got this working successfully, and I believe it was
accomplished in as clean, flexible, and functional a manner as
possible.

For anybody who is interested in what I was asking about in this
thread, I’ve begun documenting what I’ve done in the wiki here:

http://wiki.bestpractical.com/view/NoCreateUserOnEmailTicketCreate

I haven’t finished the article (I still need to paste in code, and
possibly explain how it works) but I will RSN.

Feel free to reply with questions, comments, and suggestions :slight_smile:

– Steve Scaffidi stephen@scaffidi.net