AutoreplyOrCorrespondence
When creating a ticket on someone's behalf this template code will choose to use the Autoreply or Correspondence templates. If the ticket creator is not a requestor or there is more than one requestor the Correspondence template is used, otherwise an Autoreply template is used.
{ use RT::Template; my $creator_name = $Ticket->CreatorObj->Name; my $requestors = $Ticket->Requestors->UserMembersObj; my ( $c_requestor, $r_count ) = ( 0, 0 ); while ( my $r = $requestors->Next() ) { if ( $r->Name eq $creator_name ) { $c_requestor++; } else { $r_count++; } } my $template = new RT::Template($RT::SystemUser); my $template_name; #if the creator is not a requestor or #there is more than one requestor ( who's not the creator ) #use the Correspondence template if ( ! $c_requestor || $r_count ) { $template_name = 'Correspondence'; } else { #otherwise use the Autoreply template $template_name = 'Autoreply'; } #Load the Queue Template $template->LoadQueueTemplate( Queue => $Ticket->Queue, Name => $template_name, ); #if there's no Queue Template attempt to find a Global one. unless ( $template->id ) { $template->LoadGlobalTemplate( $template_name ); unless ( $template->id ) { $RT::Logger->error("Could not load template : $template_name") } } #Process embedded fields & expressions of true templates; #note that we can only meaningfully use the body my($ret, $msg) = $template->Parse( TicketObj => $Ticket, TransactionObj => $Transaction, ); $ret ? $template->MIMEObj->stringify : $msg; }