projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
RT option to exclude certain Cc addresses, #15451
[freeside.git]
/
rt
/
lib
/
RT
/
Interface
/
Email.pm
diff --git
a/rt/lib/RT/Interface/Email.pm
b/rt/lib/RT/Interface/Email.pm
index
cda6130
..
9216887
100755
(executable)
--- a/
rt/lib/RT/Interface/Email.pm
+++ b/
rt/lib/RT/Interface/Email.pm
@@
-445,7
+445,7
@@
sub SendEmail {
# don't ignore CHLD signal to get proper exit code
local $SIG{'CHLD'} = 'DEFAULT';
# don't ignore CHLD signal to get proper exit code
local $SIG{'CHLD'} = 'DEFAULT';
- open
my $mail, "|$path $args >/dev/null"
+ open
( my $mail, '|-', "$path $args >/dev/null" )
or die "couldn't execute program: $!";
# if something wrong with $mail->print we will get PIPE signal, handle it
or die "couldn't execute program: $!";
# if something wrong with $mail->print we will get PIPE signal, handle it
@@
-997,13
+997,28
@@
sub ParseCcAddressesFromHead {
my $user = $args{'CurrentUser'}->UserObj;
return
my $user = $args{'CurrentUser'}->UserObj;
return
- grep $_ ne $current_address && !RT::EmailParser->IsRTAddress( $_ ),
+ grep { $_ ne $current_address
+ && !RT::EmailParser->IsRTAddress( $_ )
+ && !IgnoreCcAddress( $_ )
+ }
map lc $user->CanonicalizeEmailAddress( $_->address ),
map Email::Address->parse( $args{'Head'}->get( $_ ) ),
qw(To Cc);
}
map lc $user->CanonicalizeEmailAddress( $_->address ),
map Email::Address->parse( $args{'Head'}->get( $_ ) ),
qw(To Cc);
}
+=head2 IgnoreCcAddress ADDRESS
+Returns true if ADDRESS matches the $IgnoreCcRegexp config variable.
+
+=cut
+
+sub IgnoreCcAddress {
+ my $address = shift;
+ if ( my $address_re = RT->Config->Get('IgnoreCcRegexp') ) {
+ return 1 if $address =~ /$address_re/i;
+ }
+ return undef;
+}
=head2 ParseSenderAddressFromHead HEAD
=head2 ParseSenderAddressFromHead HEAD
@@
-1809,9
+1824,6
@@
sub _RecordSendEmailFailure {
}
}
}
}
-eval "require RT::Interface::Email_Vendor";
-die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Interface/Email_Vendor.pm} );
-eval "require RT::Interface::Email_Local";
-die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Interface/Email_Local.pm} );
+RT::Base->_ImportOverlays();
1;
1;