summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgerv%gerv.net <>2005-01-01 22:44:15 +0100
committergerv%gerv.net <>2005-01-01 22:44:15 +0100
commit4e2bfc82a0a1d70e3e0e79d27b9bcee8dfc25077 (patch)
tree7995ebb2391debcd774e93aab16411e04df8e28d
parentb9cfd23ffdca5cf3efc90f19471c553085f4c913 (diff)
downloadbugzilla-4e2bfc82a0a1d70e3e0e79d27b9bcee8dfc25077.tar.gz
bugzilla-4e2bfc82a0a1d70e3e0e79d27b9bcee8dfc25077.tar.xz
Bug 59351 - move all calls to sendmail to a central place. Patch by mkanat; r=gerv,vladd; a=justdave.
-rw-r--r--Bugzilla/BugMail.pm21
-rw-r--r--Bugzilla/Flag.pm9
-rw-r--r--Bugzilla/Token.pm19
-rw-r--r--CGI.pl5
-rw-r--r--globals.pl37
-rwxr-xr-ximportxml.pl8
-rwxr-xr-xmove.pl6
-rwxr-xr-xwhine.pl8
-rwxr-xr-xwhineatnews.pl9
9 files changed, 51 insertions, 71 deletions
diff --git a/Bugzilla/BugMail.pm b/Bugzilla/BugMail.pm
index 0e089fa12..638b8a413 100644
--- a/Bugzilla/BugMail.pm
+++ b/Bugzilla/BugMail.pm
@@ -864,20 +864,29 @@ sub NewProcessOnePerson ($$$$$$$$$$$$$) {
my $msg = PerformSubsts($template, \%substs);
- my $sendmailparam = "-ODeliveryMode=deferred";
- if (Param("sendmailnow")) {
- $sendmailparam = "";
+ MessageToMTA($msg);
+
+ push(@sentlist, $person);
+ return 1;
+}
+
+# XXX: Should eventually add $mail_from and $mail_to options to
+# control the SMTP Envelope. -mkanat
+sub MessageToMTA ($) {
+ my ($msg) = (@_);
+
+ my $sendmailparam = "";
+ unless (Param("sendmailnow")) {
+ $sendmailparam = "-ODeliveryMode=deferred";
}
if ($enableSendMail == 1) {
open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
die "Can't open sendmail";
-
+
print SENDMAIL trim($msg) . "\n";
close SENDMAIL;
}
- push(@sentlist, $person);
- return 1;
}
1;
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm
index 1ee6ba71c..8fa1e9457 100644
--- a/Bugzilla/Flag.pm
+++ b/Bugzilla/Flag.pm
@@ -36,6 +36,7 @@ use Bugzilla::Config;
use Bugzilla::Util;
use Bugzilla::Error;
use Bugzilla::Attachment;
+use Bugzilla::BugMail;
use constant TABLES_ALREADY_LOCKED => 1;
@@ -637,12 +638,8 @@ sub notify {
Bugzilla->cgi->header();
ThrowTemplateError($::template->error());
}
-
- my $delivery_mode = Param("sendmailnow") ? "" : "-ODeliveryMode=deferred";
- open(SENDMAIL, "|/usr/lib/sendmail $delivery_mode -t -i")
- || die "Can't open sendmail";
- print SENDMAIL $message;
- close(SENDMAIL);
+
+ Bugzilla::BugMail::MessageToMTA($message);
}
################################################################################
diff --git a/Bugzilla/Token.pm b/Bugzilla/Token.pm
index 55362d184..90efe99bd 100644
--- a/Bugzilla/Token.pm
+++ b/Bugzilla/Token.pm
@@ -31,6 +31,7 @@ package Bugzilla::Token;
use Bugzilla::Config;
use Bugzilla::Error;
+use Bugzilla::BugMail;
use Date::Format;
@@ -91,9 +92,7 @@ sub IssueEmailChangeToken {
$template->process("account/email/change-old.txt.tmpl", $vars, \$message)
|| ThrowTemplateError($template->error());
- open SENDMAIL, "|/usr/lib/sendmail -t -i";
- print SENDMAIL $message;
- close SENDMAIL;
+ Bugzilla::BugMail::MessageToMTA($message);
$vars->{'token'} = $newtoken;
$vars->{'emailaddress'} = $new_email . Param('emailsuffix');
@@ -102,10 +101,7 @@ sub IssueEmailChangeToken {
$template->process("account/email/change-new.txt.tmpl", $vars, \$message)
|| ThrowTemplateError($template->error());
- open SENDMAIL, "|/usr/lib/sendmail -t -i";
- print SENDMAIL $message;
- close SENDMAIL;
-
+ Bugzilla::BugMail::MessageToMTA($message);
}
sub IssuePasswordToken {
@@ -157,10 +153,7 @@ sub IssuePasswordToken {
$vars, \$message)
|| ThrowTemplateError($template->error());
- open SENDMAIL, "|/usr/lib/sendmail -t -i";
- print SENDMAIL $message;
- close SENDMAIL;
-
+ Bugzilla::BugMail::MessageToMTA($message);
}
@@ -236,9 +229,7 @@ sub Cancel {
$template->process("account/cancel-token.txt.tmpl", $vars, \$message)
|| ThrowTemplateError($template->error());
- open SENDMAIL, "|/usr/lib/sendmail -t -i";
- print SENDMAIL $message;
- close SENDMAIL;
+ Bugzilla::BugMail::MessageToMTA($message);
# Delete the token from the database.
&::SendSQL("LOCK TABLES tokens WRITE");
diff --git a/CGI.pl b/CGI.pl
index 0d03562fe..163c83a56 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -44,6 +44,7 @@ use Bugzilla::Util;
use Bugzilla::Config;
use Bugzilla::Constants;
use Bugzilla::Error;
+use Bugzilla::BugMail;
# Shut up misguided -w warnings about "used only once". For some reason,
# "use vars" chokes on me when I try it here.
@@ -225,9 +226,7 @@ sub MailPassword {
"login" => $login,
"password" => $password});
- open SENDMAIL, "|/usr/lib/sendmail -t -i";
- print SENDMAIL $msg;
- close SENDMAIL;
+ Bugzilla::BugMail::MessageToMTA($msg);
}
sub PutHeader {
diff --git a/globals.pl b/globals.pl
index 02a4f8fb4..12644d506 100644
--- a/globals.pl
+++ b/globals.pl
@@ -33,6 +33,7 @@ use Bugzilla::Constants;
use Bugzilla::Util;
# Bring ChmodDataFile in until this is all moved to the module
use Bugzilla::Config qw(:DEFAULT ChmodDataFile $localconfig $datadir);
+use Bugzilla::BugMail;
# Shut up misguided -w warnings about "used only once". For some reason,
# "use vars" chokes on me when I try it here.
@@ -1410,32 +1411,26 @@ sub RemoveVotes {
# Now lets send the e-mail to alert the user to the fact that their votes have
# been reduced or removed.
- my $sendmailparm = '-ODeliveryMode=deferred';
- if (Param('sendmailnow')) {
- $sendmailparm = '';
- }
- if (open(SENDMAIL, "|/usr/lib/sendmail $sendmailparm -t -i")) {
- my %substs;
+ my %substs;
- $substs{"to"} = $name . Param('emailsuffix');
- $substs{"bugid"} = $id;
- $substs{"reason"} = $reason;
+ $substs{"to"} = $name . Param('emailsuffix');
+ $substs{"bugid"} = $id;
+ $substs{"reason"} = $reason;
- $substs{"votesremoved"} = $removedvotes;
- $substs{"votesold"} = $oldvotes;
- $substs{"votesnew"} = $newvotes;
+ $substs{"votesremoved"} = $removedvotes;
+ $substs{"votesold"} = $oldvotes;
+ $substs{"votesnew"} = $newvotes;
- $substs{"votesremovedtext"} = $removedvotestext;
- $substs{"votesoldtext"} = $oldvotestext;
- $substs{"votesnewtext"} = $newvotestext;
+ $substs{"votesremovedtext"} = $removedvotestext;
+ $substs{"votesoldtext"} = $oldvotestext;
+ $substs{"votesnewtext"} = $newvotestext;
- $substs{"count"} = $removedvotes . "\n " . $newvotestext;
+ $substs{"count"} = $removedvotes . "\n " . $newvotestext;
- my $msg = PerformSubsts(Param("voteremovedmail"),
- \%substs);
- print SENDMAIL $msg;
- close SENDMAIL;
- }
+ my $msg = PerformSubsts(Param("voteremovedmail"),
+ \%substs);
+
+ Bugzilla::BugMail::MessageToMTA($msg);
}
SendSQL("SELECT SUM(vote_count) FROM votes WHERE bug_id = $id");
my $v = FetchOneColumn();
diff --git a/importxml.pl b/importxml.pl
index f23387176..277681a35 100755
--- a/importxml.pl
+++ b/importxml.pl
@@ -61,6 +61,7 @@ use lib ($::path);
use Bugzilla;
use Bugzilla::Config qw(:DEFAULT $datadir);
+use Bugzilla::BugMail;
use XML::Parser;
use Data::Dumper;
@@ -113,11 +114,8 @@ sub MailMessage {
$header.= "From: Bugzilla <$from>\n";
$header.= "Subject: $subject\n\n";
- open(SENDMAIL,
- "|/usr/lib/sendmail -ODeliveryMode=background -t -i") ||
- die "Can't open sendmail";
- print SENDMAIL $header . $message . "\n";
- close SENDMAIL;
+ my $sendmessage = $header . $message . "\n";
+ Bugzilla::BugMail::MessageToMTA($sendmessage);
Log($subject . " sent to: $to");
}
diff --git a/move.pl b/move.pl
index 8218c4069..328671f81 100755
--- a/move.pl
+++ b/move.pl
@@ -168,11 +168,7 @@ $template->process("bug/show.xml.tmpl", { bugs => \@bugs,
$msg .= "\n";
-open(SENDMAIL,
- "|/usr/lib/sendmail -ODeliveryMode=background -t -i") ||
- die "Can't open sendmail";
-print SENDMAIL $msg;
-close SENDMAIL;
+Bugzilla::BugMail::MessageToMTA($msg);
my $logstr = "XML: bugs $buglist sent to $to";
Log($logstr);
diff --git a/whine.pl b/whine.pl
index dc3f2302c..25a422a71 100755
--- a/whine.pl
+++ b/whine.pl
@@ -33,6 +33,7 @@ use Bugzilla::Config qw(:DEFAULT $datadir);
use Bugzilla::Constants;
use Bugzilla::Search;
use Bugzilla::User;
+use Bugzilla::BugMail;
# create some handles that we'll need
my $template = Bugzilla->template;
@@ -378,12 +379,7 @@ sub mail {
$template->process("whine/multipart-mime.txt.tmpl", $args, \$msg)
or die($template->error());
- my $sendmailparam =
- Param('sendmailnow') ? '' : "-ODeliveryMode=deferred";
- open SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i"
- or die "Can't open sendmail";
- print SENDMAIL $msg;
- close SENDMAIL;
+ Bugzilla::BugMail::MessageToMTA($msg);
delete $args->{'boundary'};
delete $args->{'alternatives'};
diff --git a/whineatnews.pl b/whineatnews.pl
index b5fd020a9..8e73e1b6d 100755
--- a/whineatnews.pl
+++ b/whineatnews.pl
@@ -31,6 +31,8 @@ use strict;
require "globals.pl";
+use Bugzilla::BugMail;
+
SendSQL("select bug_id,short_desc,login_name from bugs,profiles where " .
"(bug_status = 'NEW' or bug_status = 'REOPENED') and " .
"to_days(now()) - to_days(delta_ts) > " . Param('whinedays') .
@@ -68,10 +70,7 @@ foreach my $email (sort (keys %bugs)) {
$msg .= " -> ${urlbase}show_bug.cgi?id=$i\n";
}
- my $sendmailparam = Param('sendmailnow') ? '' : "-ODeliveryMode=deferred";
- open SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i"
- or die "Can't open sendmail";
- print SENDMAIL $msg;
- close SENDMAIL;
+ Bugzilla::BugMail::MessageToMTA($msg);
+
print "$email " . join(" ", @{$bugs{$email}}) . "\n";
}