summaryrefslogtreecommitdiffstats
path: root/processmail
diff options
context:
space:
mode:
authorterry%mozilla.org <>1999-05-13 02:20:39 +0200
committerterry%mozilla.org <>1999-05-13 02:20:39 +0200
commitb76a02502d1e3abf05d8aef379d14ac259619526 (patch)
treeded9fe568e1c16f142b1c1b9c0fbd5ef0f1d5ae1 /processmail
parent47e7a341fd69d3d26d48d4e33d09c6e8ecbbc6c2 (diff)
downloadbugzilla-b76a02502d1e3abf05d8aef379d14ac259619526.tar.gz
bugzilla-b76a02502d1e3abf05d8aef379d14ac259619526.tar.xz
Added user preference controlling how much email they get.
Diffstat (limited to 'processmail')
-rwxr-xr-xprocessmail32
1 files changed, 26 insertions, 6 deletions
diff --git a/processmail b/processmail
index 48eba9193..b5852bbb8 100755
--- a/processmail
+++ b/processmail
@@ -178,13 +178,29 @@ $::bug{'long_desc'}
}
-
+my $didexclude = 0;
sub fixaddresses {
- my ($list) = (@_);
+ my ($field, $list) = (@_);
my @result;
my %seen;
foreach my $i (@$list) {
- if ($i ne $nametoexclude && $i ne "" && !defined $::nomail{$i} && !defined $seen{$i}) {
+ if ($i eq "") {
+ next;
+ }
+ SendSQL("select emailnotification from profiles where login_name = " .
+ SqlQuote($i));
+ my $emailnotification = FetchOneColumn();
+ if ($emailnotification eq "CConly") {
+ if ($field ne "cc") {
+ next;
+ }
+ }
+ if ($emailnotification eq "ExcludeSelfChanges" && $i eq $nametoexclude) {
+ $didexclude = 1;
+ next;
+ }
+
+ if (!defined $::nomail{$i} && !defined $seen{$i}) {
push @result, $i;
$seen{$i} = 1;
}
@@ -224,9 +240,10 @@ sub ProcessOneBug {
close FID;
if (Different($old, $new)) {
system("diff -c -b $old $new > $diffs");
- my $tolist = fixaddresses([$::bug{'assigned_to'}, $::bug{'reporter'},
+ my $tolist = fixaddresses("to",
+ [$::bug{'assigned_to'}, $::bug{'reporter'},
$::bug{'qa_contact'}]);
- my $cclist = fixaddresses($::bug{'cclist'});
+ my $cclist = fixaddresses("cc", $::bug{'cclist'});
my $logstr = "Bug $i $verb";
if ($tolist ne "" || $cclist ne "") {
my %substs;
@@ -251,7 +268,10 @@ sub ProcessOneBug {
print SENDMAIL $msg;
close SENDMAIL;
$logstr = "$logstr; mail sent to $tolist, $cclist";
- print "<B>Email sent to:</B> $tolist $cclist <B>Excluding:</B> $nametoexclude\n";
+ print "<B>Email sent to:</B> $tolist $cclist\n";
+ if ($didexclude) {
+ print "<B>Excluding:</B> $nametoexclude (<a href=changepassword.cgi>change your preferences</a> if you wish not to be excluded)\n";
+ }
}
}
unlink($diffs);