X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Flib%2FRT%2FInterface%2FEmail.pm;h=9216887cddb801b87eb4880987b154d13527c26b;hp=cda61305b0f801fee048124bb9e903d40fff5e6b;hb=ff4e86db92ebc49762302c40dd31e0325f9afd1c;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941 diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index cda61305b..9216887cd 100755 --- 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'; - 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 @@ -997,13 +997,28 @@ sub ParseCcAddressesFromHead { 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); } +=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 @@ -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;