[rt-users] notification

Kurt Engle engle at 4j.lane.edu
Mon Dec 13 17:20:08 EST 2010


This code was entered in a template not a script. I was trying Kevin's suggestion with doing it all in one go. I figure that if I can capture the CustomField in the template code and test on that value to return my $to_address, then I am pretty much set to create my outgoing e-mail at the same time. 



Kurt Engle 
Network Engineer 
Eugene 4J Schools 


From: "Kenneth Crocker" <kfcrocker at lbl.gov> 
To: rt-users at lists.bestpractical.com 
Sent: Monday, December 13, 2010 12:12:50 PM 
Subject: Re: [rt-users] notification 

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 < engle at 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_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" < falcone at bestpractical.com > 
To: rt-users at 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] falcone at 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] falcone at bestpractical.com > 
> > To: [4] rt-users at 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] falcone at bestpractical.com > 
> > > To: [6] rt-users at 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: falcone at bestpractical.com 
> 3. mailto: falcone at bestpractical.com 
> 4. mailto: rt-users at lists.bestpractical.com 
> 5. mailto: falcone at bestpractical.com 
> 6. mailto: rt-users at lists.bestpractical.com 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20101213/2aa9d375/attachment.htm>


More information about the rt-users mailing list