import of rt 3.0.9
[freeside.git] / rt / lib / RT / Action / Autoreply.pm
1 # BEGIN LICENSE BLOCK
2
3 # Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
4
5 # (Except where explictly superceded by other copyright notices)
6
7 # This work is made available to you under the terms of Version 2 of
8 # the GNU General Public License. A copy of that license should have
9 # been provided with this software, but in any event can be snarfed
10 # from www.gnu.org.
11
12 # This work is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 # General Public License for more details.
16
17 # Unless otherwise specified, all modifications, corrections or
18 # extensions to this work which alter its source code become the
19 # property of Best Practical Solutions, LLC when submitted for
20 # inclusion in the work.
21
22
23 # END LICENSE BLOCK
24 package RT::Action::Autoreply;
25 require RT::Action::SendEmail;
26
27 use strict;
28 use vars qw/@ISA/;
29 @ISA = qw(RT::Action::SendEmail);
30
31
32 # {{{ sub SetRecipients
33
34 =head2 SetRecipients
35
36 Sets the recipients of this message to this ticket's Requestor.
37
38 =cut
39
40
41 sub SetRecipients {
42     my $self=shift;
43
44     push(@{$self->{'To'}}, $self->TicketObj->Requestors->MemberEmailAddresses);
45     
46     return(1);
47 }
48
49 # }}}
50
51
52 # {{{ sub SetReturnAddress 
53
54 =head2 SetReturnAddress
55
56 Set this message\'s return address to the apropriate queue address
57
58 =cut
59
60 sub SetReturnAddress {
61     my $self = shift;
62     my %args = ( is_comment => 0,
63                  @_
64                );
65     
66     my $replyto;
67     if ($args{'is_comment'}) { 
68         $replyto = $self->TicketObj->QueueObj->CommentAddress || 
69                      $RT::CommentAddress;
70     }
71     else {
72         $replyto = $self->TicketObj->QueueObj->CorrespondAddress ||
73                      $RT::CorrespondAddress;
74     }
75     
76     unless ($self->TemplateObj->MIMEObj->head->get('From')) {
77         if ($RT::UseFriendlyFromLine) {
78             my $friendly_name = $self->TicketObj->QueueObj->Description ||
79                     $self->TicketObj->QueueObj->Name;
80             $friendly_name =~ s/"/\\"/g;
81             $self->SetHeader( 'From',
82                         sprintf($RT::FriendlyFromLineFormat, 
83                 $self->MIMEEncodeString( $friendly_name, $RT::EmailOutputEncoding ), $replyto),
84             );
85         }
86         else {
87             $self->SetHeader( 'From', $replyto );
88         }
89     }
90     
91     unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) {
92         $self->SetHeader('Reply-To', "$replyto");
93     }
94     
95 }
96   
97 # }}}
98
99 eval "require RT::Action::Autoreply_Vendor";
100 die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Vendor.pm});
101 eval "require RT::Action::Autoreply_Local";
102 die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Local.pm});
103
104 1;