Kurt, Not sure why you start the scrip with a "{" and end with one. Just start with the "my $trans=".
Your code should be in the "Prep Action" and you should add this at the end of the code you've got: else { $to_address= "rubble"; ### after the above line, the code should look like this: #### # copy value of "To_Address" to Custom Field "Whatever you named it" my $cf_name = "Whatever it is"; $cf_obj->LoadByName( Name => $cf_name ); $RT::Logger->debug( "Loaded \$cf_obj->Name = ". $cf_obj->Name() ."\n" ); $ticket->AddCustomFieldValue(Field=>$cf_obj, Value=>$to_address, RecordTransaction=>0); return 1; Then make sure the "Cleanup Action" ends with a "return 1;" or the scrip doesn't finish. Also, not sure why you start the scrip with a "{" and end with one. Just start with the "my $trans=". The Template should refer to the value in the CF you created for the "To Address", like this: To: {$Ticket->FirstCustomFieldValue('To Address Value')}...@4j.lane.edu Subject: Request Titled: "{$Ticket->Subject}" is ready to Migrate or whatever That should do it. Kenn LBNL On Mon, Dec 13, 2010 at 11:15 AM, Kurt Engle <en...@4j.lane.edu> wrote: > So here is the code that I am working with inside my template: > Script: > Condition: On Create > Action: Notify Other Recipients > Template: My Notify > Stage: TransactionBatch > > 'My Notify' code > ------------------------------------------- > { > my $trans = $self->TransactionObj; > my $ticket = $self->TicketObj; > my $cf = new RT::CustomField($RT::SystemUser); > $cf->LoadByName(Queue => $ticket->QueueObj->id,Name => "Building"); > return 0 unless $cf->id; > my $cfvalue = $ticket->FirstCustomFieldValue('Building'); > > my $to_address = ""; > > if ($cfvalue =~ /Sheldon/) { > $to_address = "sheldonhd"; > } > elsif ($cfvalue =~ /North/) { > $to_address = "northhd"; > } > elsif ($cfvalue =~ /South/) { > $to_address = "southhd"; > } > elsif ($cfvalue =~ /Churchill/) { > $to_address = "churchillhd"; > } > elsif ($cfvalue =~ /Kennedy/) { > $to_address = "kennedyhd"; > } > elsif ($cfvalue =~ /Kelly/) { > $to_address = "kellyhd"; > } > elsif ($cfvalue =~ /Computer/) { > $to_address = "engle"; > else { > $to_address= "rubble"; > } > return 1; > } > > > To: {$to_addre...@4j.lane.edu <to_address...@4j.lane.edu>"} > Subject: New Ticket #{ $Ticket->Id() } has been created > > Time to go to work > ---------------------------------- > > In my debug log, I am not even seeing the script being called that contains > this template. If I strip everything above the 'To:' field, the scrip and > template gets called but the e-mail is not sent even when I hard code the > e-mail address. > > > > Kurt Engle > > ------------------------------ > *From: *"Kevin Falcone" <falc...@bestpractical.com> > *To: *rt-us...@lists.bestpractical.com > *Sent: *Friday, December 10, 2010 12:23:28 PM > *Subject: *Re: [rt-users] notification > > On Fri, Dec 10, 2010 at 12:08:05PM -0800, Kenneth Crocker wrote: > > Kevin, > > The template would look like this: > > Kenn > > I'm perfectly able to write the scrip and template in question, but > since Kurt has a half-working template I was curious what *he* was > doing. Involving a CustomField seems like a bit of overkill. > > -kevin > > > To: {$Ticket->FirstCustomFieldValue('ToOverride')}...@[1]lbl.gov > > Subject: Request Titled: "{$Ticket->Subject}" is ready to Migrate! > > > > A scrip based on whatever condition would do this: > > > > my $trans = $self->TransactionObj; > > my $ticket = $self->TicketObj; > > my $cf_obj = new RT::CustomField($RT::SystemUser); > > my $cf_name = "ToOverride"; > > > > if condition is "A" > > $my $cf_value = "the To address you want for "A" condition"; > > elsif condition is "B" > > $my $cf_value = "the To address you want for "B" condition"; > > > > and on and on till you're thru. > > > > then, set the Custom Field as the last piece of action code: > > > > $cf_obj->LoadByName(Name=>$cf_name); > > $RT::Logger->debug("Loaded\$cf_obj->Name = ". $cf_obj->Name() ."\n" ); > > $ticket->AddCustomFieldValue( Field=>$cf_obj, Value=>$cf_value, > RecordTransaction=>0 ); > > > > return 1; > > > > Then write a notification scrip to use the new template based on your > conditions. > > Use "TransactioBatch" for both scrips. > > > > Hope this helps. > > > > Kenn > > LBNL > > > > On Fri, Dec 10, 2010 at 11:55 AM, Kevin Falcone <[2] > falc...@bestpractical.com> wrote: > > > > On Fri, Dec 10, 2010 at 11:07:32AM -0800, Kurt Engle wrote: > > > Actually found a nice example of creating a template to send out > an e-mail. RTFM.... > > > > > > However, I am having a bit of a problem constructing the To: > field. Basically, I have a > > > varialble '$toAddress' that is set to an e-mail address by some > prior code. > > > > Where in the code is it set. It would really need to be in that > > template > > > Here is my template code to construct the To: field: > > > To: { $toAddress } > > > Subject: Ticket #{ $Ticket->Id()} {$Ticket->Subject()} > > > A new ticket has been created for you in the HelpDesk Queue. > > > > > > { $RT::WebURL } Ticket/Display.html?id={ $Ticket->Id() } > > > > > > However, I keep getting 'recipient not found'. > > > > In debug logging mode, RT will actually dump copies of the email > being > > processed into the logs, which would show you the To: > > > > Please note that if To: is your email address and you're the actor > on > > this ticket while testing, you may have told RT not to send you > email > > in that case using $NotifyActor > > -kevin > > > > > > > > > ---------------------------------------------------------------------------------------------- > > > > > > From: "Kevin Falcone" <[3]falc...@bestpractical.com> > > > To: [4]rt-us...@lists.bestpractical.com > > > Sent: Friday, December 10, 2010 10:03:04 AM > > > Subject: Re: [rt-users] notification > > > > > > On Fri, Dec 10, 2010 at 09:55:07AM -0800, Kurt Engle wrote: > > > > That is correct. But how do I make use of the > RT::Action::SendEmail module to send the > > > > notification incorporating my To: field. Or is there a better > way to send out a custom > > > > notification? > > > > > > You use one of the standard Notify actions and a custom template. > You > > > don't write any code in the action and you don't call the action > > > directly. > > > > > > -kevin > > > > > > > From: "Kevin Falcone" <[5]falc...@bestpractical.com> > > > > To: [6]rt-us...@lists.bestpractical.com > > > > Sent: Friday, December 10, 2010 8:59:25 AM > > > > Subject: Re: [rt-users] notification > > > > > > > > On Thu, Dec 09, 2010 at 11:42:03AM -0800, Kurt Engle wrote: > > > > > I am looking for a way to send an email from RT to a specified > e-mail address that > > > is not > > > > an > > > > > account in RT or associated with the ticket as a requestor, > watcher, CC:, > > > BCC:...etc.... > > > > > > > > > > I have the logic down to specify the e-mail address and have > some nasty perl code to > > > > actually > > > > > send the e-mail. But, it seems that RT has some internal > module(s) that handle what > > > the > > > > nasty > > > > > perl code is doing. > > > > > > > > > > I can see the RT::Action:SendEmail module, but how do I > incorporate that into a > > > script > > > > that > > > > > allows me to do what I am looking to do? > > > > > > > > Sounds like you actually just want to use a normal Notify > action, but > > > > have the template contain your ugly logic that sets up the To: > line > > > > based on your perl code > > > > > > > > -kevin > > > > References > > > > Visible links > > 1. http://lbl.gov/ > > 2. mailto:falc...@bestpractical.com > > 3. mailto:falc...@bestpractical.com > > 4. mailto:rt-users@lists.bestpractical.com > > 5. mailto:falc...@bestpractical.com > > 6. mailto:rt-users@lists.bestpractical.com >