AddTicketHistoryToMail: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (undo html entity conversion & wrap in <pre>) |
||
Line 5: | Line 5: | ||
Require: Text::Wrapper perl module | Require: Text::Wrapper perl module | ||
<pre style="white-space: pre;"> | |||
Subject: Resolved: {$Ticket->Subject} | |||
Dear customer, | |||
your issue regarding | |||
"{$Ticket->Subject()}", | |||
has been resolved in our ticket system. See below for history of this ticket. | |||
If you have any further questions or concerns, please reply to this | |||
message to reopen the ticket. | |||
regards | |||
{$Ticket->OwnerObj->RealName || $Ticket->OwnerObj->Name} | |||
your-company-fooprint | |||
---------------------------------------------------------------- | |||
Your initial request was | |||
---------------------------------------------------------------- | |||
{$Ticket->Transactions->First->Content()} | |||
---------------------------------------------------------------- | |||
Complete Ticket History | |||
---------------------------------------------------------------- | |||
{ | |||
my $resolved_message = ''; | |||
my $last_content = ''; | |||
my $transactions = $Ticket->Transactions; | |||
$transactions->Limit( FIELD => 'Type', VALUE => 'Correspond' ); | |||
# If for some reason you want to expose internal comments to end users, | |||
# probably a bad idea, comment out the previous line and uncomment these: | |||
# $transactions->Limit( FIELD => 'Type', VALUE => 'Correspond', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ); | |||
# $transactions->Limit( FIELD => 'Type', VALUE => 'Comment', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ); | |||
while (my $transaction = $transactions->Next) { | |||
my $attachments = $transaction->Attachments; | |||
while (my $message = $attachments->Next) { | |||
next unless $message->ContentType =~ | |||
m!^(text/html|text/plain|message|text$)!i; | |||
my $content = $message->Content; | |||
$content =~ s/>(([^ >]|\n)*)>//g; # strip HTML tags from text/html | |||
next unless $content; | |||
next if $last_content eq $content; | |||
$last_content = $content; | |||
my $subject = ($message->Subject || $Ticket->Subject); | |||
my $wrapper = Text::Wrapper->new(columns=>70); | |||
$content = $wrapper->wrap($content); | |||
$resolved_message .= "Subject: "; | |||
$resolved_message .= $subject; | |||
$resolved_message .= "\n"; | |||
$resolved_message .= "From: "; | |||
$resolved_message .= $message->CreatorObj->RealName || $message->CreatorObj->EmailAddress; | |||
$resolved_message .= "\n"; | |||
$resolved_message .= "Time: "; | |||
$resolved_message .= $message->CreatedObj->AsString; | |||
$resolved_message .= "\n"; | |||
$resolved_message .= "\n"; | |||
$resolved_message .= "$content\n"; | |||
$resolved_message .= "------------------------------------------------\n"; | |||
} | |||
} | |||
$resolved_message; | |||
} | |||
------------------------------------------------------------------------- | |||
Common Information | |||
------------------------------------------------------------------------- | |||
There is no need to reply to this message unless you want to RE-OPEN your | |||
ticket with ID [{$rtname} #{$Ticket->id}]. | |||
If you want to simply add a COMMENT to this ticket without re-opening the ticket, click below: | |||
mailto:rt-comment@yourdomain.com?subject=[{$rtname}%20#{$Ticket->id()}]&body=%20 | |||
Please note: | |||
- ALWAYS include the string [{$rtname} #{$Ticket->id}] in the subject line of all future correspondence about this issue. | |||
- Do NOT attach or include the content of previous emails already sent to you by rt. | |||
</pre> |
Revision as of 13:11, 20 January 2017
Original author: Michael Markstaller - IFCO
Code cleanups: RuslanZakirov
Require: Text::Wrapper perl module
Subject: Resolved: {$Ticket->Subject} Dear customer, your issue regarding "{$Ticket->Subject()}", has been resolved in our ticket system. See below for history of this ticket. If you have any further questions or concerns, please reply to this message to reopen the ticket. regards {$Ticket->OwnerObj->RealName || $Ticket->OwnerObj->Name} your-company-fooprint ---------------------------------------------------------------- Your initial request was ---------------------------------------------------------------- {$Ticket->Transactions->First->Content()} ---------------------------------------------------------------- Complete Ticket History ---------------------------------------------------------------- { my $resolved_message = ''; my $last_content = ''; my $transactions = $Ticket->Transactions; $transactions->Limit( FIELD => 'Type', VALUE => 'Correspond' ); # If for some reason you want to expose internal comments to end users, # probably a bad idea, comment out the previous line and uncomment these: # $transactions->Limit( FIELD => 'Type', VALUE => 'Correspond', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ); # $transactions->Limit( FIELD => 'Type', VALUE => 'Comment', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ); while (my $transaction = $transactions->Next) { my $attachments = $transaction->Attachments; while (my $message = $attachments->Next) { next unless $message->ContentType =~ m!^(text/html|text/plain|message|text$)!i; my $content = $message->Content; $content =~ s/>(([^ >]|\n)*)>//g; # strip HTML tags from text/html next unless $content; next if $last_content eq $content; $last_content = $content; my $subject = ($message->Subject || $Ticket->Subject); my $wrapper = Text::Wrapper->new(columns=>70); $content = $wrapper->wrap($content); $resolved_message .= "Subject: "; $resolved_message .= $subject; $resolved_message .= "\n"; $resolved_message .= "From: "; $resolved_message .= $message->CreatorObj->RealName || $message->CreatorObj->EmailAddress; $resolved_message .= "\n"; $resolved_message .= "Time: "; $resolved_message .= $message->CreatedObj->AsString; $resolved_message .= "\n"; $resolved_message .= "\n"; $resolved_message .= "$content\n"; $resolved_message .= "------------------------------------------------\n"; } } $resolved_message; } ------------------------------------------------------------------------- Common Information ------------------------------------------------------------------------- There is no need to reply to this message unless you want to RE-OPEN your ticket with ID [{$rtname} #{$Ticket->id}]. If you want to simply add a COMMENT to this ticket without re-opening the ticket, click below: mailto:rt-comment@yourdomain.com?subject=[{$rtname}%20#{$Ticket->id()}]&body=%20 Please note: - ALWAYS include the string [{$rtname} #{$Ticket->id}] in the subject line of all future correspondence about this issue. - Do NOT attach or include the content of previous emails already sent to you by rt.