[rt-users] Send email from template

Kenneth Crocker kfcrocker at lbl.gov
Mon May 3 12:32:31 EDT 2010


Givano,

I have a scrip that sets the owner based on the value in a Custom Field.
Look at it and modify it to meet your needs:

# Custom Action preparation code

my $trans = $self->TransactionObj;
my $ticket = $self->TicketObj;

#
# set new ticket owner id value
#
#    42 -  Bob
#   148 - Carol
#  5125 - Ted
#  9324 - Alice
#

my %orgs = qw(
           Budget         148
           Controller      5125
           Facilities      42
           Field-OPS    5125
           Property       9324
           SPO            148
           Travel           5125
           Other           42
          );

my $cf = new RT::CustomField($RT::SystemUser);
$cf->LoadByName(Queue => $ticket->QueueObj->id,Name => "CFO-Org");

# check for valid CF-Org value first,
# then set new Ticket Owner ID

if ($cf->id)
    {
     my $cfvalue = $ticket->FirstCustomFieldValue('CFO-Org');
     my $ownerid = $orgs{$cfvalue};
     $ticket->SetOwner($ownerid);
    }

return 1;

You could easily replace the owner Ids with your email address and instead
of setting the ownerid, set the "To" address or whatever.

Anyway, hope this helps. It sure works for us.

Kenn
LBNL

On Mon, May 3, 2010 at 8:49 AM, Givano <givano at gmail.com> wrote:

> Hi,
>
> I'm trying to send an email from template, initiated by rt-crontool as
> described in wiki, the only trick is that dependent on custom field it
> should be sent to other persons group. Here my template, somehow it always
> send to user1 and user 2.
>
> ########################
> Subject: new ticket, 30 minutes unowned!
> RT-Send-Cc: { my $values = $Ticket->CustomFieldValues('CIT_Category');
>   my $OUTPUT;
>   my $CFValue;
>   while ( my $value = $values->Next ) {
>     $CFValue = $value->Content;
>     if ($CFValue == 'IT Facilites') { $OUTPUT = 'user1 at dom.com,
> user2 at dom.com' }
>     elsif ($CFValue == 'Linux/Network') { $OUTPUT =  'user3 at dom.com,
> user4 at dom.com' }
>     elsif ($CFValue == 'Phone') { $OUTPUT =  'user5 at dom.com, user6 at dom.com'
> }
>     elsif ($CFValue == 'Windows') { $OUTPUT =  'user7 at dom.com,
> user8 at dom.com' }
>   }
>   $OUTPUT;
> }
>
> The ticket {$Ticket->id} stayed unowned for 30 minutes.
>
> Please do a categorisation, assign optionally an owner!
> ######################################
>
> Any idea what I'm doing wrong, maybe there is some, more elegant method to
> do a custom field based escalation, here is how I'am starting the
> rt-crontool:
>
> rt-crontool --search RT::Search::FromSQL --search-arg "id = 23331" --action
> RT::Action::RecordComment --template 'UnownedNotifyWatcherLevel1'
>
> Thanks in advance,
>
> Ivan Samarin
>
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
> Buy a copy at http://rtbook.bestpractical.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20100503/cd1f067c/attachment.htm>


More information about the rt-users mailing list